1、map接口中定义了map的基本操作,同时也对key--value的形式做了定义:在接口map中定义了一个内部接口entry,实现类可以通过实现此接口实现对key--value的封装
2、关于public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>的个人理解
接口定义了一个类的类型,hashmap实现了map接口表示其是一个map类型的实现类,这个类型是不受其他类的影响而改变的;如果hashmap不实现map接口,虽然AbstractMap也实现了map接口,此时hashmap类型的定义是通过继承AbstractMap表示的,依赖于AbstractMap,如果AbstractMap的类型改变了hashmap的类型也会随之改变。
3、HashMap定义了静态内部类Entry,将key-value以及hash桶的概念封装在了一起。在HashMap中,用一个table链表存储hash桶,每个位置表示一个hash码,其值是一个entry,将相同hash码的entry付给其next的值;在查询的时候只有其hash码相同了,才有可能查到其值
4、hashmap实现了Serializable,同时定义了transient的数据域,因此重写了private void writeObject(java.io.ObjectOutputStream s)和 private void readObject(java.io.ObjectInputStream s)
5、函数不是随便拆分,将有独立意义的操作拆分出来