【Java集合类面试三十】、BlockingQueue中有哪些方法,为什么这样设计?
面试官:BlockingQueue中有哪些方法,为什么这样设计?** 参考答案: 为了应对不同的业务场景,BlockingQueue 提供了4 组不同的方法用于插入、移除以及对队列中的元素进行检查。如果请求的操作不能得到立即执行的话,每组方法的表现是不同的。这些方法如下: 抛异常特定值阻塞超时插入a...
【Java集合类面试二十九】、说一说HashSet的底层结构
面试官:说一说HashSet的底层结构** 参考答案: HashSet是基于HashMap实现的,默认构造函数是构建一个初始容量为16,负载因子为0.75 的HashMap。它封装了一个 HashMap 对象来存储所有的集合元素,所有放入 HashSet 中的集合元素实际上由 HashMap 的 key 来保存,...
【Java集合类面试二十八】、说一说TreeSet和HashSet的区别
面试官:说一说TreeSet和HashSet的区别** 参考答案: HashSet、TreeSet中的元素都是不能重复的,并且它们都是线程不安全的,二者的区别是: 1、HashSet中的元素可以是null,但TreeSet中的元素不能是null; 2、HashSet不能保证元素的排列顺序...
【Java集合类面试二十七】、谈谈CopyOnWriteArrayList的原理
面试官:谈谈CopyOnWriteArrayList的原理** 参考答案: CopyOnWriteArrayList是Java并发包里提供的并发类,简单来说它就是一个线程安全且读操作无锁的ArrayList。正如其名字一样,在写操作时会复制一份新的List,在新的List上完成写操作,然后再将原引用指向新的Lis...
【Java集合类面试二十六】、介绍一下ArrayList的数据结构?
面试官:介绍一下ArrayList的数据结构?** 参考答案: ArrayList的底层是用数组来实现的,默认第一次插入元素时创建大小为10的数组,超出限制时会增加50%的容量,并且数据以 System.arraycopy() 复制到新的数组,因此最好能给出数组大小的预估值。 按数组下标访问元素的性...
【Java集合类面试二十五】、有哪些线程安全的List?
面试官:ArrayList和LinkedList有什么区别?** 参考答案: 1、ArrayList的实现是基于数组,LinkedList的实现是基于双向链表; 2、对于随机访问ArrayList要优于LinkedList,ArrayList可以根据下标以O(1)时间复杂度对元素进行随机访问,而Li...
【Java集合类面试二十四】、ArrayList和LinkedList有什么区别?
面试官:ArrayList和LinkedList有什么区别?** 参考答案: 1、ArrayList的实现是基于数组,LinkedList的实现是基于双向链表; 2、对于随机访问ArrayList要优于LinkedList,ArrayList可以根据下标以O(1)时间复杂度对元素进行随机访问,而Li...
【Java集合类面试二十三】、List和Set有什么区别?
面试官:List和Set有什么区别?** 参考答案: Set代表无序的,元素不可重复的集合; List代表有序的,元素可以重复的集合。
【Java集合类面试二十二】、Map和Set有什么区别?
面试官:Map和Set有什么区别?** 参考答案: Set代表无序的,元素不可重复的集合; Map代表具有映射关系(key-value)的集合,其所有的key是一个Set集合,即key无序且不能重复。
【Java集合类面试二十一】、请介绍TreeMap的底层原理
面试官:请介绍TreeMap的底层原理** 参考答案: TreeMap基于红黑树(Red-Black tree)实现。映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。TreeMap的基本操作containsKey、get、put、remove方法...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
Java面试那些事儿
手把手带您学习Java,开启编程之路。
+关注