java集合类面试题

java集合类面试题java集合类面试题1.请聊一下java的集合类,以及在实际项目中你是如何用的?注意说出集合体系,常用类,接口,实现类加上你所知道的高并发集合类,JUC在实际项目中引用,照实说就好了2.集合类是怎么解决高并发中的问题?线程非全的集合类ArrayListLinkedListHashSetTreeSetHashMapTreeMap实际开发中我们自己用这样的集合最多,因为一般我们自己写的业务代码中,不太涉及到多线程共享同一个集合的问题线程安全的集合类VectorHashTable

大家好,又见面了,我是你们的朋友全栈君。

java集合类面试题

1.请聊一下java的集合类,以及在实际项目中你是如何用的?

注意说出集合体系,常用类,接口,实现类
加上你所知道的高并发集合类,JUC
在实际项目中引用,照实说就好了
在这里插入图片描述
在这里插入图片描述

2.集合类是怎么解决高并发中的问题?

线程非全的集合类ArrayList LinkedList HashSet TreeSet HashMap TreeMap 实际开发中我们自己用这样的集合最多,因为一般我们自己写的业务代码中,不太涉及到多线程共享同一个集合的问题

线程安全的集合类Vector HashTable 虽然效率没有JUC中的高性能集合高,但是也能够适应大部分环境

主要是ConcurrentHashMap和CopyOnWriteArrayList

思路:先说一下哪些是非安全,普通的安全的集合类,JUC中高并发的集合类

3.Vector和ArrayList的区别是什么

在这里插入图片描述

4.ArrayDeque和LinkedList的区别是什么

在这里插入图片描述

5.List,Set,Map三者的区别?

在这里插入图片描述

6.集合框架底层的数据结构

在这里插入图片描述

7.HashMap和HashTable有何不同?

在这里插入图片描述

8.ArrayList和LinkedList有何区别?

在这里插入图片描述

9.集合和数组的区别

在这里插入图片描述

10.Java集合的快速失败机制 “fail-fast”?

在这里插入图片描述

11.遍历一个 List 有哪些不同的方式?每种方法的实现原理是什么?

在这里插入图片描述
在这里插入图片描述

12.HashSet如何检查重复?HashSet是如何保证数据不可重复的?

在这里插入图片描述

private static final Object PRESENT = new Object();
private transient HashMap<E,Object> map;

public HashSet() { 
   
    map = new HashMap<>();
}

public boolean add(E e) { 
   
    // 调用HashMap的put方法,PRESENT是一个至始至终都相同的虚值
	return map.put(e, PRESENT)==null;
}

13.BlockingQueue是什么?

在这里插入图片描述

14.在Queue中poll()和remove()有什么区别?

在这里插入图片描述

15.ConcurrentHashMap和 Hashtable的区别?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.comparable和comparator的区别?

在这里插入图片描述

17.你能说一下ArrayList在增删的时候是怎么做的么?主要说一下他为啥慢。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除其实跟新增是一样的,不过叫是叫删除,但是在代码里面我们发现,他还是在copy一个数组。
在这里插入图片描述
在这里插入图片描述

18.哪些集合类是线程安全的?哪些不安全?

在这里插入图片描述
在这里插入图片描述

19.讲讲红黑树的特点?

在这里插入图片描述

20.怎么确保一个集合不能被修改?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156234.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Scala_scala定义变量

    Scala_scala定义变量scala中print是直接输出print(s”$a”)输出为变量的值println()打印时自动换行println()相当于print(+’\n’)objectTestScala{defmain(args:Array[String]):Unit={println(“HelloScala!!”)vala1=’T’vararr=…

    2022年9月27日
    5
  • c语言十进制转八进制程序_c语言八进制以什么开头

    c语言十进制转八进制程序_c语言八进制以什么开头二进制整数转八进制算法二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。八进制整数转二进制算法八进制整数转换为二进制整数时,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。案例二进制整数转八进制将二进制整数1110111100转换为八进制,转换过程如下:我们将二进制的1110111100转…

    2025年6月21日
    6
  • javascript 匿名函数_java 匿名函数

    javascript 匿名函数_java 匿名函数在JavaScript中用匿名函数(箭头函数)写出递归的方法前言今天看 Mozilla 出品的 ES6InDepth ,看到 Arrowfunctions(中文翻译),其中一段让人讶异。Usingarrowstopiercethedarkheartofcomputerscience「使用箭头来刺穿计算机的黑暗心脏」里面提到λ(lambda)表达式、阿隆佐·邱奇(Alonz…

    2022年9月28日
    3
  • LBS定位技术「建议收藏」

    LBS定位技术「建议收藏」http://www.cnblogs.com/LBSer/p/3295642.htmlLBS定位技术从方法上可分成三类:基于三角关系的定位技术、基于场景分析的定位技术、基于临近关系的定位技术(唐毅和杨

    2022年8月2日
    6
  • Linux系统编程——进程调度浅析「建议收藏」

    Linux系统编程——进程调度浅析

    2022年1月27日
    109
  • 防欺诈盗号,请勿支付或输入qq密码

    防欺诈盗号,请勿支付或输入qq密码不知道读者是否留意过这种情况:通过微信内置浏览器打开带有表单的页面,点击其中任何一个表单项都会在窗口顶部显示红色背景的防欺诈警告信息“防欺诈盗号,请勿支付或输入qq密码”,如下图所示  1)申请书下载地址:https://mp.weixin.qq.com/htmledition/res/urlrequest.doc。2)申请人主体材料包括:申请人的姓名(…

    2022年7月15日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号