https://github.com/zhantong/interview/blob/master/Java/Java.md
.java可以有多个类吗?有什么要求?
源文件可以javac出多个class文件吗?有哪些情况?
什么是匿名类?
switch后的变量类型可以是什么?
char变量如何表示汉字?
final修饰一个变量内容不能改变吗?
overload与override的区别?
构造器能否被重写?
抽象类与类的区别?
抽象类和接口的交互?
java中实现多态的机制?
java中的闭包?https://sylvanassun.github.io/2017/07/30/2017-07-30-JavaClosure/ https://www.jianshu.com/p/0dcfa0a4e953
String的储存机制?
try-catch-return-finally的顺序?
当一个线程进入一个对象的sychronized方法后,其他线程能否访问该对象的其他方法?
ArrayList与vector的区别?
hashmap与hashtable的区别?
list, set, map继承自哪个接口?
Collections和Collection的区别?
Java中有几种类型的流?分别继承了哪个类?
jvm加载class文件的机制?
能不能自己写个类也叫java.lang.String?
java中反射的作用是什么?
成员变量,局部变量,静态变量的区别?
各种引用类型的区别?
==与equals的区别?
equals和hashcode区别?
java集合框架图?
error与exceptions的区别?
用户线程和守护线程的区别?
守护线程中产生的线程属于哪种线程?
java内存模型?
BIO/NIO/AIO分别是什么?
ArrayList的subList()是新建实例还是返回自身?
ArrayList的asList()返回的是什么?可以调用add(),remove()等方法吗?
Comparator注意事项?
HashMap多线程下死循环是怎么产生的?
TreeMap,HashMap, HashTable, concurrentHashMap的key和value分别能为null吗?
SimpleDataFormat线程安全吗?
一个Timer对象几个线程?
Timer可以用来并行处理定时任务吗?
Random线程安全吗?
多线程下使用Random会有什么问题?应该改用什么?
Thread.join()是如何实现的?
Java的值传递还是引用传递?
线程同步的方法?
创建线程的方法?
类与类加载器的关系?
什么是双亲委派机制?
如何自定义类加载器?
类的生命周期?
类初始化的时机?
类的加载过程?
<clinit>方法是什么?
符号引用和直接引用区别?
如何理解平台无关性?
运行时数据区域结构?
基于栈的指令集与基于寄存器的指令集的区别?
javac的编译过程?
什么是JIT?
什么是热点代码?
如何判断热点代码?
java与c/c++编译器对比?
java线程的实现?
java线程的调度方式?
线程的状态与转换方式?
无限期等待有哪些?限期等待和阻塞呢?
对象的访问定位?
语法糖有哪些?
java线程安全的实现?
锁优化?
什么是锁的自旋?什么是自适应自旋?
什么是锁消除和锁粗化?
轻量级锁的作用是什么?可以代替重量级锁吗?
为什么sychronized修饰的对象最好是final?为什么最好不用String?
Object类有哪些方法?
sleep()和wait()的区别?
java历史版本特性?
TheadLocal原理?
java8对hashmap的改进?
如何理解NIO?
concurrent包?
当前线程wait()后会立即阻塞吗?其他线程能进入同步块吗?
什么时候wait()会抛出interrupted异常?
调用notify()后线程会被立刻唤醒吗?
notify()和notifyAll()有什么区别?
为什么notify()可能引发死锁?
线程的sleep(), yield(), join()区别?
类名.class与类名.this的区别?