温柔的微笑

老师您好我有个问题:当指定addAll操作时,源码中会将参数集合调用toArray方法,此时内存复制一个新的数组吗,这样内部占用就会加倍

2019-09-18
1
1
回复 1
文贺 回复 温柔的微笑

toArray() 底层使用的是 Arrays 的 copyOf 方法,底层会返回新的数组。 如果可以预见 addAll 的集合特别大,可以进行分段插入,防止一次性 addAll 耗时久的话,引起 JVM 的 full gc。日常工作中,一般来说,无需担忧这个问题哈,主要是因为 addAll 执行很快,在 addAll 执行完成之后,数组很快就会被 jvm 回收掉了。

2019-09-18
没有更多内容
取消 回复 发送