Pra*_*kar 7 java garbage-collection out-of-memory
这是一个理论问题.我只是好奇,如果Java有一个垃圾收集机制来释放内存,那么为什么还会OutOfMemoryError发生呢?
我搜索了这个,但可以得到这些链接
垃圾收集器是否保证在Out of Memory Error之前运行?
这些没有具体回答我的问题.如果Java通过使用垃圾收集很好地允许内存,那么为什么会OutOfMemoryError发生呢?
Cod*_*ice 12
如果内存中的所有对象都不符合垃圾回收的条件,则可能发生OutOfMemoryError.例如:
List<MyClass> hellos = new ArrayList<>();
for (;;) {
hellos.add(new MyClass());
}
Run Code Online (Sandbox Code Playgroud)
这将创建一个列表并继续MyClass向其添加对象,直到内存耗尽.没有任何对象符合垃圾收集的条件,因为它们都引用了所有对象.
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |