1. 语法基础 面向对象特性 a = a + b 与 a += b的区别 3 * 0.1 == 0.3 返回什么 能在Switch中使用String吗? String StringBuilder StringBuffer的区别 对equals() 和 hashCode()的理解 final finalize 和 finally的不同之处 接口和抽象类的区别 this() & super() 在构造方法中的区别 Java 移位运算符 2. 泛型 为什么需要泛型 泛型类如何定义使用 泛型接口如何定义使用 泛型方法如何定义使用 泛型的上限和下限 如何理解Java中的泛型是伪泛型 3. 注解 注解的作用 注解的常见分类 4. 异常 Java异常类层次结构 可查的异常(checked exceptions)和不可查的异常(unchecked exceptions) 区别 throw和throws的区别 Java7 的 try-with-resource 异常的底层 5. 反射 什么是反射 反射的使用 getName getCanonicalName与getSimpleName的区别 6. SPI机制 什么是SPI机制 SPI机制的应用 SPI机制的简单示例