Java之Lists.Partition项目中遇到的坑

项目中使用Lists.Partition批量处理数据,但是最近内存一直OutOffMemory,GC无法回收。后来我们对使用过的集合手动clear,没有测试直接就上线了。尴尬的是内存回收了,但是跑出来的数据出问题了。最后自己单元测试发现是List<List<TreasureIntegrationVo>> resultPartition = Lists.partition(list, 500)之后再对list进行clear操作,resultPartition也会被清空。回来百度才发现它最终会调用 list.subList。subList执行结果是获取ArrayList的一部分,返回的是ArrayList的部分视图。对子集合的操作会反映到原集合, 对原集合的操作也会影响子集合。

 

参考:

https://blog.csdn.net/huangwenyi1010/article/details/78409489/

https://www.cnblogs.com/lanweijava/p/11900442.html

https://blog.csdn.net/PrimeYun/article/details/100714846

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章