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.在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?
16.什么是死锁(deadlock)?
17.如何确保N个线程可以访问N个资源同时又不导致死锁?
18.Java集合类框架的基本接口有哪些?
19.为什么集合类没有实现Cloneable和Serializable接口?
20.什么是迭代器(Iterator)?
21.Iterator和ListIterator的区别是什么?
22.快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
23.Java中的HashMap的工作原理是什么?
24.hashCode()和equals()方法的重要性体现在什么地方?
25.HashMap和Hashtable有什么区别?
26.数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?
27.ArrayList和LinkedList有什么区别?
28.Comparable和Comparator接口是干什么的?列出它们的区别。
29.什么是Java优先级队列(Priority Queue)?
30.你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么?
31.如何权衡是使用无序的数组还是有序的数组?、
32.Java集合类框架的最佳实践有哪些?
33.Enumeration接口和Iterator接口的区别有哪些?
34.HashSet和TreeSet有什么区别?
35.Java中垃圾回收有什么目的?什么时候进行垃圾回收?
36.System.gc()和Runtime.gc()会做什么事情?
37.finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?
38.如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?
39.Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?
40.串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
41.在Java中,对象什么时候可以被垃圾回收?
42.JVM的永久代中会发生垃圾回收么?
43.Java中的两种异常类型是什么?他们有什么区别?
44.Java中Exception和Error有什么区别?
45.throw和throws有什么区别?
46.final, finally, finalize的区别。
47.sleep() 和 wait() 有什么区别?
48.HashMap和Hashtable的区别。
49.Collection 和 Collections的区别。
总结了很多有关于java面试的资料,希望能够帮助正在学习java的小伙伴。由于资料过多不便发表文章,创作不易,望小伙伴们能够给我一些动力继续创建更好的java类学习资料文章,请多多支持和关注小作,别忘了点赞 评论 转发。右上角私信我回复【03】即可领取免费学习资料谢谢啦!