本文转自公众号:Java面试通关手册
伖情提示:阅读+独立思考的方式学习本文效果最佳本文干货较多,如果大家觉得不错请转发给可能需要本文的朋友哦!最后不要忘记給作者点赞点广告哦!
-
效率: 因为线程安全的问题HashMap 要比 HashTable 效率高一点。另外HashTable 基本被淘汰,不要在代码中使用它;
-
初始容量大小和每次扩充容量大小的不同 : ①创建时如果不指定容量初始值Hashtable 默认的初始大小为11,之后每次擴充容量变为原来的2n+1。HashMap 默认的初始化大小为16之后每次扩充,容量变为原来的2倍②创建时如果给定了容量初始值,那么 Hashtable 会直接使用你給定的大小而 HashMap
会将其扩充为2的幂次方大小。也就是说 HashMap 总是使用2的幂作为哈希表的大小,后面会介绍到为什么是2的幂次方