1. 数据结构
都是数组+拉链实现的哈希表,但是具体实现上差别大了
2. 并发
Hashtable全表锁
HashMap多线程不安全,需要自己封装
ConcurrentHashMap加细粒度锁,读不加锁,如果读到空值再加锁。注意这三个关键字final,transient,volatile
3. null
Hashtable不允许用 null作为键和值
HashMap允许全局最多一个null键,但是允许无数个null值
ConcurrentHashMap不允许用 null作为键和值
参考文档
http://blog.csdn.net/kingzone_2008/article/details/8179701
http://zhangshixi.iteye.com/blog/672697
http://ifeve.com/concurrenthashmap/