3.hashMap和hashtable 还有个concurrentHashMap

  hashMap的存储结构:答案就是数组+链表+黑红树(一种特定的二叉树)。hashMap只允许一个key为空,既然说到key,那key肯定是不可以重复的,第二次put的值就会把前一个值给覆盖。遍历顺序是不确定的,但是访问速度很快。
  hashtable,注意t是小写的。其实看源码就会发现只比hashMap多个synchronized。多个锁的概念,所以它的线程是安全的,hashMap线程不安全。
  concurrentHashMap,既然谈到了线程问题,那就得谈谈concurrent包下的它。hashtable是全锁,hashMap是不锁。不锁肯定不行,线程不安全。全锁的话,性能肯定差。所以引出了分段锁的概念。按顺序锁定所有段,再按顺序释放所有段的锁。

猜你喜欢

转载自blog.csdn.net/qq_39753008/article/details/107629437