面试-ArrayList相关的问题

159 阅读1分钟
ArrayList频繁扩容导致性能低下如何优化
通过源码可以知道ArrayList每次扩容都是1.5的去扩容,默认的大小是10,
如果数据足够大的话,扩容的次数就会增加。
我们可以采用直接指定数据长度去减少扩容的次数。
还有一个就是删除的优化,我们可以将需要删除的问题先标记起来,然后集中删除
system.arraycopy 输入浅拷贝
如果拷贝一个二维数组,拷贝之后修改新的数组里面的元素是否会影响以前的数据(数组中的元素是基本数据类型)?
会影响,因为数组是引用类型,拷贝底层是浅拷贝,只会复制引用。
ArrayList是否线程安全?
ArrayList是线程不安全的,如果多个线程进行访问,可以使用同步关键字。
也可以使用Vertor来替代,因为它的内部实现了线程安全。但是速度相对来说会慢一点。