java基础进阶篇(六)_HashTable------【java源码栈】
一.概述 前面介绍了HashMap的结构和原理,这里介绍个类似HashMap的结构Hashtable。 HashTable 官方解释是HashMap的轻量级实现, 和 HashMap 一样,Hashtable 也是一个 散列表 ,它存储的内容是 键值对(key-value)映射 。 所以我们结合HashMap来介绍HashTable, 比较下两者的区别。 HashTable 使用的很少, 它支持线程安全, 通过内部方法加上 synchronized 实现, 因此同步锁的密度太大了, 在实际情况中笔者用的很少, 所以关于方法就不像HashMap 详细介绍了.后面会单独准备一章解决HashMap的线程同步问题. 二.和HashMap的比较 1.不同点 1).接口 Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。 HashMap继承AbstractMap,实现了Map, Cloneable, Serializable接口。 2).线程安全 Hashtable 线程安全,支持多线程并发, 内部方法使用synchronized 关键字约束同步代码块. HashMap 线程不安全,需要开发人员额外解决. 后面章节会专门解释并发情况下数组和集合的处理. 3).初始容量和扩容