共计 1037 个字符,预计需要花费 3 分钟才能阅读完成。
这期内容当中丸趣 TV 小编将会给大家带来有关 Java 中的 Hashtable 为什么要小写而不是驼峰命名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Hashtable 和 HashMap 是面试中必问的两个数据结构知识点。今天我们就一起来谈谈 Hashtable!
在开始之前,我先来问一个问题,Hashtable 中的 T 为什么不是大写。我百度谷歌了很久都没有合理的答案!根据国外网友的评论得知,Hashtable 之所以没有遵循驼峰命令是因为当初的程序员书写时产生的 bug,后来虽然 sun 注意到了这个问题。但是考虑到历史兼容性问题,就选择了保持原状!
说起 Hashtable 大家能谈到的几点,无非下面几点:
相比 HashMap,Hashtable 是线程安全的。因为 Hashtable 的几个重要方法都加上了 synchronized 关键字。
Hashtable 的 key、value 都不可以为 null。HashMap 最多只允许一条记录的键为 null,允许多条记录的值为 null。
Hashtable 承自 Dictionary 类,HashMap 继承自 AbstractMap 类。
Hashtable 已被淘汰,可以使用 ConcurrentHashMap 替代,这一点可以在 Hashtable 源码中的注释说明中找出。
Hashtable、HashMap 都使用了 Iterator。而由于历史原因,Hashtable 还使用了 Enumeration 的方式。
Hashtable 直接使用对象的 hashCode。而 HashMap 重新计算 hash 值。
HashTable 中的 hash 数组初始大小是 11,增加的方式是 old*2+1。HashMap 中 hash 数组的默认大小是 16,而且一定是 2 的指数。
HashMap 有 containsvalue 和 containsKey 两个方法,Hashtable 使用的是 contains 方法。
HashMap 实现大多都是相同的,也没什么可以说的。可以看作是 Hashtable 的轻量级实现。由于 Hashtable 和 HashMap 实现大多都是相同的,也没什么可以说的。另外 Hashtable 也不在被推荐使用了,所以我建议大家不要在使用它,改用 ConcurrentHashMap。
上述就是丸趣 TV 小编为大家分享的 Java 中的 Hashtable 为什么要小写而不是驼峰命名了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。