Hashmap与Hashtable的区别
1、线程安全
hashtable的源码 所有的操作都是synchronized 修饰的
hashmap没有
2、性能优势
Hashtable 是线程安全的,每个方法都要阻塞其他线程,所以 Hashtable 性能较差,
HashMap 性能较好,使用更广。
3、NULL
Hashtable 是不允许键或值为 null 的,
HashMap 的键值则都可以为 null。
Hashtable key 为 null 会直接抛出空指针异常,value 为 null 手动抛出空指针异常,
HashMap 的逻辑对 null 作了特殊处理。
4、扩容
Hashtable和HashMap它们内部实现方式的数组的初始化大小和方式:
HashTable中hash数组默认大小是11,增加的方式是 old*2+1。
HashMap中hash数组的默认大小是16, 增加的方式是 old*2。