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

 

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