1.方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写
(override)实现的是运行时的多态性(也称为后绑定)
2.默认修饰符有包访问权限
3.重写 equals 时总是要重写 hashCode
4.java 为系统异常和普通异常提供了不同的解决方案,编译器强制普通异常必须 try..catch 处理或用 throws 声明继
续抛给上层调用方法处理,所以普通异常也称为 checked 异常,而系统异常可以处理也可以不处理,所以,编译器不
强制用 try..catch 处理或用 throws 声明,所以系统异常也称为 unchecked 异常
5.面试题里面对日期有详尽的介绍
6.对于 ArrayList, array 是他的成员变量,但是每次在方法中使用该成员变量的时候作者都会重
新在方法中开辟一个局部变量,然后给局部变量赋值为 array,然后再使用
7.在 java 中有普通集合、同步(线程安全)集合、并发集合。普通集合通常性能最高,但是不保证多线程的安全
性和并发的可靠性。线程安全集合仅仅是给集合添加了 synchronized 同步锁,严重牺牲了性能,而且对并发的效率就
更低了,并发集合则通过复杂的策略不仅保证了多线程的安全又提高的并发时的效率。
8.Map 接口有三个实现类(HashMap:基于 hash 表的 Map 接口实现,非线程安全,高效,支持 null 值和 null
键; HashTable:线程安全,低效,不支持 null 值和 null 键; LinkedHashMap:是 HashMap 的一个子类,保存了
记录的插入顺序; SortMap 接口: TreeMap,能够把它保存的记录根据键排序,默认是键值的升序排序)
10.Set 接口有两个实现类(HashSet:底层是由 HashMap 实现,不允许集合中有重复的值,使用该方式时需要重
写 equals()和 hashCode()方法; LinkedHashSet:继承与 HashSet,同时又基于 LinkedHashMap 来进行实现,底
层使用的是 LinkedHashMp)。
11.反 射 首 先 是 能 够 获 取 到 Java 中 要 反 射 类 的 对象 , 获 取 字节码有 三 种 方 法 ,
1.Class.forName(className) 2.类名.class 3.this.getClass()。然后将字节码中的方法,变量,构造函数等映射成
相应的 Method、 Filed、 Constructor 等类,这些类提供了丰富的方法可以被我们所使用。