1 Java平台的优点和缺点2 Java中Exception 跟 Error 有什么区别3 class not found exception和class not found error有什么区别ClassNotFoundException 是编译 / 运行时可处理的 ExceptionNoClassDefFoundError 是 JVM 级无法处理的 Error4 Java的几种引用类型强引用,只要强引用存在,JVM 绝对不会回收对象软引用,内存不足时 JVM 才会回收弱引用,只要触发 GC,无论内存是否充足,都会回收对象虚引用,无法通过虚引用获取对象实例,仅用于监听对象被 GC 回收的事件,必须配合ReferenceQueue使用5 String、StringBuffer、StringBuilder的区别6 String 为什么要设计成不可变吗保障线程安全,支持字符串常量池7 StringBuffer的线程安全是如何实现的核心是通过在所有涉及字符串修改的方法上添加 synchronized 关键字实现的8 动态代理是基于什么原理实现的9 动态代理主要用来解决什么问题10 int 跟 Integer 有什么区别,Integer的值缓存范围11 Linked List 跟 LinkedList 的区别12 ArrayList 的扩容机制13 HashMap 跟 TreeMap 有什么区别HashMap:基于 “数组 + 链表 / 红黑树”,无序TreeMap:基于 红黑树 实现,有序14 TreeMap 的操作,像 get、 put、 remove 这些的时间复杂度是多少O (logn)15 如何判断一个链表有没有环16 HashMap是线程安全的吗17 怎么设计一个线程安全的 HashMap18 ConcurrentHashMap如何实现线程安全的细粒度锁(synchronized 锁桶节点)+ CAS 无锁操作 + 多线程协助扩容19 接口和抽象类有什么区别20 实习遇到的困难,如何解决21 最难的课程是什么,怎么学会的22 让你接手一个完全陌生的项目代码,你会怎么快速接手