image

金三银四了,3月底,4月初,找工作换单位的黄金时期。4月初将会有有一大批职场人士流动。。。

作为Java开发码农的你是不是也在蠢蠢欲动,或者已经搞了几轮车轮战了?

我们为大家准备了 77 道经典 Java 面试题,如果你面试不力,基础还不够强,那么你或许会受用!

1、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

2、JDK和JRE的区别是什么?

3、static关键字是什么意思?Java中是否可以覆盖(override)一个private或者是 static的方法?

4、是否可以在static环境中访问非static变量?

5、Java支持的数据类型有哪些?什么是自动拆装箱?

6、Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

7、Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

8、Java支持多继承么?

9、接口和抽象类的区别是什么?

10、什么是值传递和引用传递?

11、进程和线程的区别是什么?

12、创建线程有几种不同的方式?你喜欢哪一种?为什么?

13、概括的解释下线程的几种可用状态。

14、同步方法和同步代码块的区别是什么?

15、什么是死锁(deadlock)?

16、如何确保N个线程可以访问N个资源同时又不导致死锁?

17、Java集合类框架的基本接口有哪些?

18、为什么集合类没有实现Cloneable和Serializable接口?

19、什么是迭代器(Iterator)?

20、Iterator和ListIterator的区别是什么?

21、快速失败(fail-­fast)和安全失败(fail-­safe)的区别是什么?

22、Java中的HashMap的工作原理是什么?

23、hashCode()和equals()方法的重要性体现在什么地方?

24.HashMap和Hashtable有什么区别?

25、数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是 ArrayList?

26、ArrayList和LinkedList有什么区别?

27、Comparable和Comparator接口是干什么的?列出它们的区别。

28、什么是Java优先级队列(Priority Queue)?

29、你了解大O符号(big-­O notation)么?你能给出不同数据结构的例子么?

30、如何权衡是使用无序的数组还是有序的数组?

31、Java集合类框架的最佳实践有哪些?

32、Enumeration接口和Iterator接口的区别有哪些?

33、HashSet和TreeSet有什么区别?

34、System.gc()和Runtime.gc()会做什么事情?

35、finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

36、果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

37、Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?

38、串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?

39、在Java中,对象什么时候可以被垃圾回收?

40、JVM的永久代中会发生垃圾回收么?

41、Java中的两种异常类型是什么?他们有什么区别?

42、Java中Exception和Error有什么区别?

43、throw和throws有什么区别?

44、异常处理完成以后,Exception对象会发生什么变化?

45、finally代码块和finalize()方法有什么区别?

46、什么是JDBC?

47、解释下驱动(Driver)在JDBC中的角色。

48、Class.forName()方法有什么作用?

49、PreparedStatement比Statement有什么优势?

50、什么时候使用CallableStatement?用来准备CallableStatement的方法是什么?

51、数据库连接池是什么意思?

52、什么是RMI?

53、什么是分布式垃圾回收(DGC)?它是如何工作的?

54、解释下Serialization和Deserialization。

55、什么是Servlet?

56、说一下Servlet的体系结构。

57、GenericServlet和HttpServlet有什么区别?

58、解释下Servlet的生命周期。

59、doGet()方法和doPost()方法有什么区别?

60、什么是服务端包含(Server Side Include)?

61、什么是Servlet链(Servlet Chaining)?

62、如何知道是哪一个客户端的机器正在请求你的Servlet?

63、HTTP响应的结构是怎么样的?

64、什么是cookie?session和cookie有什么区别?

65、浏览器和Servlet通信使用的是什么协议?

66、什么是HTTP隧道?

67、sendRedirect()和forward()方法有什么区别?

68、什么是URL编码和URL解码?

69、JSP请求是如何被处理的?

70、什么是JSP指令(Directive)?JSP中有哪些不同类型的指令?

71、什么是JSP动作(JSP action)?

72、隐含对象是什么意思?有哪些隐含对象?

73、面向对象软件开发的优点有哪些?

74、封装的定义和好处有哪些?

75、多态的定义?

76、继承的定义?

77、抽象的定义?抽象和封装的不同点?


在Java技术栈公众号回复 “777” 获取全部参考答案,网盘链接,7天有效哦。

image

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐