备战一线互联网公司的Java面试题清单
Java重点知识
多线程(线程状态、线程并发,Synchronized与Lock的区别和底层原理,常用的锁及其使用场景和原理,
volatile和ThreadLocal解决了什么问题,CAS在Java中的实现
线程池原理和实现,阻塞队列和线程安全队列,
线程间通信: synchronized + wait、notify/notifyAll, Lock + Condition 的多路复用,
CountDownLatch、CyclicBarrier和Semaphore的作用和用法,使用场景)
JVM内存管理机制和垃圾回收机制(内存模型、GC策略、算法、分代回收GC类型,Full GC、Minor GC作用范围和触发条件)
JVM内存调优(内存调整的6个参数,了解是怎么回事,一般做项目过程中使用较多)
设计模式(熟悉常见设计模式的应用场景,会画类图,常用:代理,2个工厂,策略,单例,观察者,适配器,组合与装饰)
JAVA集合类框架(理解框架图、HashMap、ArrayList、HashSet等的关系和区别,其中HashMap的存储机制几乎每次都有问)