JAVA基础: 1、抽象类和接口区别 2、分别讲讲 final、static 和 synchronized 可以修饰什么,以及修饰后的作用? 3、请简述一下 String、StringBuffer 和 StringBuilder 三者的区别? 4、“equals” 与 “==”、“hashCode” 的区别和使用场景? 5、Java 中深拷贝与浅拷贝的区别? 6、谈谈 Error 和 Exception 的区别? 7、什么是反射机制?反射机制的应用场景有哪些? 8、谈谈如何重写 equals() 方法?为什么还要重写 hashCode()? 9、IO 流分为几种 10、谈谈你对 Java 泛型中类型擦除的理解,并说说其局限性? 11、String 为什么要设计成不可变的? 12、说说你对 Java 注解的理解? 13、谈一谈 Java 成员变量、局部变量和静态变量的创建和回收时机?