`
王雨峰
  • 浏览: 9131 次
文章分类
社区版块
存档分类
最新评论

ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理

 
阅读更多

集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,能流利作答,当然能掌握CopyOnWrite容器和Queue是再好不过的了。另外多说一句,ConcurrentHashMap的问题在面试中问得特别多,大概是因为这个类可以衍生出非常多的问题,关于ConcurrentHashMap,我提供三点回答或者是研究方向:

 

  ConcurrentHashMap的锁分段技术?

            HashTable容器在竞争激烈的并发环境下表现出效率低下的原因,是因为所有访问HashTable的线程都必须竞争同一把锁,那假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。

 

  ConcurrentHashMap的读是否要加锁,为什么?

 

  ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器

分享到:
评论

相关推荐

    01java基础-集合知识点详解.xlsx

    就是一些通用java集合知识点整理,ArrayList LinkedList,HashMap,HashTable ,ConcurrentHashMap,HashSet,LinkedHashSet类通过线程安全否: 底层: 初始值: 扩容 : 区别(对比优势) 图解

    Java 集合学习指南 - v1.1.pdf

    本指南将深入探讨HashMap、HashSet、HashTable、LinkedHashMap、LinkedHashSet、ArrayList、LinkedList、ConcurrentHashMap等主要集合类的实现原理,以及它们在实际应用中的选择与比较。 首先,HashMap是最常用的...

    02-Java集合容器面试题-重点.docx

    Java集合容器概述、集合框架、List、Set、Map接口、Iterator、ArrayList、LinkedList、Vector、HashSet、HashMap、Queue、BlockingQueue、ConcurrentHashMap等。 Java 集合容器概述 Java 集合容器是用于存储数据...

    基础知识.pdf

    探讨了集合框架中List、Set、Map的使用与区别,包括ArrayList与LinkedList、HashMap与Hashtable、HashSet与HashMap、HashMap与ConcurrentHashMap等的区别和原理。详细讲解了HTTP请求的GET与POST方式的区别,session...

    Java集合框架完整说明便于了解集合

    6. HashMap和HashSet的区别:HashMap关注键值对,HashSet关注元素的唯一性,两者都基于哈希表实现,但HashSet的元素是HashMap的键。 7. 多线程问题:HashMap在多线程环境下不安全,可能导致死循环,应使用...

    农行研发中心-校招常见面试题汇总.pdf

    List接口的实现类有ArrayList、LinkedList、Vector等。 Set接口继承自Collection接口,表示无序不可重复的集合。Set接口的实现类有HashSet、LinkedHashSet、TreeSet等。 Map接口是Java集合框架的另一个顶层接口,...

    Java 72 道面试题及答案.docx

    HashSet 是一个基于 HashMap 实现的 Set,LinkedHashSet 继承于 HashSet,並且其内部是通过 LinkedList 来实现的。TreeSet 是一个基于红黑树实现的 Set。 HashMap 是一个基于数组和链表组成的 Map,LinkedHashMap ...

    Java集合面试题汇总.pdf

    Map接口则不同于Collection,它是键值对存储的接口,常见的实现类有HashMap、TreeMap、Hashtable、ConcurrentHashMap和Properties。 集合框架的主要优点在于其提供的数据结构和算法。例如,ArrayList和LinkedList...

    Java 集合面试稳稳的.pdf

    面试中可能会问到的还有ArrayList与LinkedList的区别、HashMap的扩容机制、HashMap在JDK 1.7和JDK 1.8的内部结构变化、HashTable与HashMap的区别等。对于这些集合类的理解,能够体现出应聘者对Java集合框架的熟悉...

    阿里巴巴电话面试试题(含答案).doc

    以下是对Java集合框架、Hashtable与HashMap以及ArrayList和LinkedList的一些关键知识点的详细解释: 1. **Java集合框架**: Java集合框架是一个统一的接口,提供了一种组织和操作对象的方式。它包括了接口(如List...

    Java 72道面试题和答案.docx

    常见的实现有HashMap、TreeMap、Hashtable、ConcurrentHashMap和Properties。HashMap提供快速的查找性能,基于数组+链表(JDK1.8后部分情况下转为红黑树);TreeMap内部是红黑树,保证了键的排序;Hashtable是线程...

    我的面试问题总结.docx

    实现类如ArrayList、LinkedList、HashSet、HashMap等,它们实现了这些接口并提供了具体的实现。例如,ArrayList和LinkedList都是List接口的实现,但它们在内部结构和性能上有显著差异。 二、Set、Map、List三者对比...

    一些java面试经验pdf

    常见的实现类包括ArrayList(基于数组实现,提供快速随机访问)和LinkedList(基于链表实现,插入和删除效率高)。 - **Set**:无序、不允许重复元素,存储元素没有特定顺序。Java中的实现类有HashSet(基于哈希表...

    java实验04.docx

    Java集合框架由多个接口和类组成,如List、Set和Map接口,以及ArrayList、HashSet、LinkedList、HashMap等实现类。 - 集合的体系结构包括接口和实现类,接口定义了通用操作,而实现类提供了具体的实现。 2. **List...

    java练习题--容器使用练习

    本练习题旨在帮助你深入理解和熟练掌握Java中的容器使用,特别是其核心类库`java.util`中的ArrayList、LinkedList、HashSet、HashMap等。通过解决这些练习题,你将能够更好地了解容器的基本操作,如添加、删除、查找...

    Java集合容器面试题(2020最新版)-重点.pdf

    2. 实现:接口的具体实现包括ArrayList、LinkedList、HashSet、HashMap等。ArrayList是一个动态数组,适合随机访问但插入和删除效率较低;LinkedList是双向链表,适合插入和删除但随机访问效率低;HashSet基于...

    Java常见的线程安全的类.docx

    线程安全的集合对象,如Vector、HashTable和StringBuffer,相比于非线程安全的ArrayList、LinkedList、HashMap、HashSet、TreeMap和TreeSet、StringBuilder等,提供了额外的线程安全保障,但可能会牺牲一定的性能。...

    Java 面试题 集合

    本集中的面试题主要围绕着Java集合框架中的核心接口和类,如List、Set、Map以及ArrayList、LinkedList、HashSet、HashMap等展开。 1. **List接口**: - List接口是有序的集合,允许有重复元素。ArrayList和...

    Java集合面试题 52道.pdf

    ArrayList(Object数组)、LinkedList(双向循环链表)、HashSet(基于HashMap实现的)、LinkedHashSet(继承于HashSet,内部采用LinkedHashMap实现)、TreeSet(红黑树)、HashMap(数组+链表组成的)、...

Global site tag (gtag.js) - Google Analytics