Java基础
此时一般会问到一些Java的基础知识,比如
l synchronized static修饰类和方法有什么区别
l HashMap的原理,底层数据结构,rehash的过程,指针碰撞问题
l HashMap的线程安全问题,为什么会产生这样的线程安全问题
l ConcurrentHashMap的数据结构,底层原理,put和get是否线程安全
l Java IO的一些内容,包括NIO,BIO等
Java高级特性
此时问到的问题一般包含JVM,多线程的一些内容,这块建议大家多看看源码,大致如下:
l Java线程池的构造方法,里面参数的含义,以及原理
l volatile和ThreadLocal解决了什么问题
l CAS在Java中的具体实现
l Java虚拟机的构成,以及一个Java对象的生命周期,还有堆栈和方法区中存储的内容
l JVM的GC过程,包括一些实际问题的分析,比如说明一个现象,让你分析可能是什么原因会导致这样的问题,应该如何对JVM参数进行调优
l synchronized和Lock的区别,以及底层实现原理
l Full GC和Minor GC触发的条件
l GC Roots的选择
l jmap,jstat,jstack等的使用场景,MAT等
l ClassLoader的加载过程
l CountDownLatch、CyclicBarrier和Semaphore等
l Java 8 的新特性等