Java 中 Hashtable 类,为什么不符合驼峰命名规范
Java 中 Hashtable 类为什么不符合驼峰命名规范Java 中的Hashtable之所以不符合现代的大驼峰命名规范即正确写法应为HashTable主要是由历史遗留问题和向后兼容性决定的。具体原因可以从以下几个方面来理解1. 诞生于 Java 早期命名规范尚未统一Hashtable是 Java 最早期的集合类之一在 JDK 1.0 版本1995年发布中就已经存在。在那个阶段Java 语言本身还没有形成后来那样严格、统一的官方命名约定例如类名每个单词首字母必须大写的驼峰规则。因此它的命名带有那个时代的随意性。2. 开发者的个人语感与习惯据推测当时负责编写该类的开发者在潜意识里将 “hashtable”哈希表视为一个完整的单词而不是 “Hash” 和 “Table” 两个单词的组合。这就像在 Java 1.0 中同样存在的Checkbox类一样开发者觉得它是一个词所以连写而像BitSet位集这类被明确感知为两个词的组合即使在早期也采用了驼峰命名。3. 为了保持向后兼容性随着 Java 的发展官方推出了严格的驼峰命名规范。但此时Hashtable已经被全球无数的开发者和项目广泛使用。如果 Sun 公司Java 的创始公司后来强行将其更名为符合规范的HashTable会导致所有旧版本的 Java 程序在编译和运行时出现错误造成巨大的生态破坏。为了向后兼容保证老代码依然能够正常运行这个“不规范”的类名就被一直保留了下来。 补充知识为什么现在不建议使用 Hashtable除了命名不规范之外Hashtable在现代 Java 开发中已经基本被淘汰主要原因包括性能较差它是线程安全的所有公共方法都使用了synchronized关键字进行修饰在高并发环境下性能开销很大。设计过时它继承自一个早已废弃的Dictionary类且不支持null作为键或值迭代器也不支持 fail-fast快速失败机制。更好的替代品在单线程环境下推荐使用性能更高的HashMap在多线程并发环境下推荐使用并发性能更好的ConcurrentHashMap。