栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java集合面试题汇总(不定期更新)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java集合面试题汇总(不定期更新)

1.判断一个集合类是否为线程安全的机制是什么?

怎么判断一个Java类是否是线程安全?有那些角度?_不积跬步,无以致千里的博客-CSDN博客_java怎么判断线程是否安全

2.说一下 Fail-Fast 机制,结合源码说一下(如果可以的话)

 

ArrayList

相关阅读:

ArrayList源码分析(扩容机制jdk8) - 掘金 (juejin.cn)

1.ArrayList 初始化时数组的默认长度是多少?

        默认长度为10。但是ArrayList的默认长度是有jdk版本差异的,在jdk8版本之前默认长度是10。而在jdk8版本的时候对ArrayList数组的默认长度进行了优化,将原来的默认长度10,改为了初始长度为0。当我们在首次添加元素,需要分配数组空间时,jdk自动帮我们进行了扩容操作,将初始数组长度扩容成了10。这样做有效地降低了无用内存的占用!它利用了数组扩容的特性来完成集合的这些功能,这也就是ArrayList集合查询快、增删慢的原因了!

2.ArrayList 扩容是扩容多少倍?扩容后是用原来的数组还是新的数组?

        新的容量是旧容量加上旧容量值右移一位得到的,一个数右移n(n>0)位的结果等于这个数除以2^n的整数部分;新数组。

3.ArrayList 是一个线程安全的集合类吗?

不是。

解决ArrayList线程不安全方案 

4.ArrayList 和 LinkedList 的使用场景

(1)如果应用程序对数据有较多的随机访问,ArrayList对象要优于LinkedList对象;

  ( 2 ) 如果应用程序有更多的插入或者删除操作,较少的随机访问,LinkedList对象要优于ArrayList对象;

(3)不过ArrayList的插入,删除操作也不一定比LinkedList慢,如果在List靠近末尾的地方插入,那么ArrayList只需要移动较少的数据,而LinkedList则需要一直查找到列表尾部,反而耗费较多时间,这时ArrayList就比LinkedList要快。

LinkedList

相关阅读:

Java如何实现LinkedList按索引下标进行插入 - 枫叶像思念 - 博客园 (cnblogs.com)

 


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999556.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号