在vps的服务器到期了,在hw又不能访问,直接在博客园写笔记了。
基础篇
1. 集合类的继承关系,源码实现原理,初始大小和如何增长。
- list类初始大小10,加载因子为1,扩容到1.5+1。底层是个Object数组,调用 System.arraycopy进行拷贝。
- Vector同上,扩容倍数是两倍,是同步的,线程安全。
- HashMap初始大小16,加载因子0.75f,扩容到2倍。底层是数组+链表,调用resize()调整位置。
- HashTable初始大小11,加载因子0.75f,扩容到2倍+1。采用分段锁,线程安全。
- TreeMap. 底层红黑树,能够保持有序,效率略低。
指定大小可以提高性能。可能还会问Collections和Arrays中常用的方法。
2. interface和abstract class的区别
-接口可以多重实现,抽象类不能多重继承。
-抽象类中可以有attribute,接口只能有method。
-接口的方法必须没有实现,抽象类可以有实现的方法。
-接口中的方法默认且必须是public的,抽象类可以protected。
3. 实例化一个未加载过的类的过程。
见书。
4.错误Error和异常Exception的分类,throws和throw的区别。
Java的异常(包括Exception和Error)分为 checked exceptions 和 unchecked exceptions :
-checked exceptions :除了RuntimeException及其子类以外,其他的Exception类及其子类。Java编译器会检查它,并强制要求处理。
-unchecked exceptions:包括运行时异常(RuntimeException与其子类)和错误(Error)。
5.Object有哪些方法?
-toString,hashCode,equals
-clone,finalize,getClass
-wait,notify,notifyAll
6. ==、equals、hashCode的关系。有可能配合String问,有可能配合set问。