Java面试宝典每日3题:day21

Posted 闲言_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试宝典每日3题:day21相关的知识,希望对你有一定的参考价值。

1.说一下 ArrayList 的优缺点

优点如下:
  ArrayList底层是 以数组实现,查找元素的时候可以通过索引下标快速定位元素位置,所以查找元素比较快。

缺点如下:
  删除元素的时候:删除某索引处元素的时候,可能需要 移动大量元素的位置,这样的话是非常消耗系统性能的。
  增加元素的时候:在某索引处添加元素的时候, 可能需要移动大量元素的位置,这样的话是非常消耗系统性能的。

  总结: 数组一经创建,其长度就不可变了;而’ArrayList 长度可变的原因是其有扩容缩容的机制,,在执行 添加删除操作的是就会根据集合剩余的空间判断是否需要扩容和缩容;扩容和缩容操作 会重新创建一个数组,将原数组的数据重新放到新数组中,当数据量非常大的时候,是很耗系统性能的。

2.如何实现数组和 List 之间的转换?

  数组转List: 使用Arrays 工具类提供的asList()方法进行转换。
  List转数组: 使用List自带的toArray()方法进行转换。

3.多线程场景下如何使用 ArrayList?

   ArrayList是线程不安全的,如果遇到多线程场景,可以通过 Collections工具类的synchronizedList()方法将其转换成线程安全的容器后再使用。

以上是关于Java面试宝典每日3题:day21的主要内容,如果未能解决你的问题,请参考以下文章

Java面试宝典每日3题:day22

Java面试宝典每日3题:day31

Java面试宝典每日3题:day18

Java面试宝典每日3题:day24

Java面试宝典每日3题:day17

Java面试宝典每日3题:day37