为什么用ArrayList的匿名内部子类来初始化集合会有内存溢出的风险?

来源:2-2 实战:购物车案例

洛奇2019

2020-11-21

难道最后的文档里的第一个方法,即传统的先new ArrayList 然后再一个个add的初始化方式就不会导致内存溢出吗?

写回答

1回答

张小喜

2020-12-06

这小节的最后,有一个锚点,总结了几种初始化集合的方式。使用双大括号来初始化集合,是会引起内存泄漏的风险,原因就是可能会有引用游离到这个对象的外部,从而造成GC回收不掉这个对象。而内存泄漏是造成内存溢出的其中一个原因。然而如果按照传统的方式,不停往ArrayList中追加元素,最终也是会造成内存溢出。但是这个并不是内存泄漏引起的。

1
0

Java高效编程技巧实践 告别996

可以改变的编程效率

1451 学习 · 326 问题

查看课程