金三银四了,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、抽象的定义?抽象和封装的不同点?