Bhu*_*han 7 java memory garbage-collection
可能重复:
使用Java创建内存泄漏
Java中有一个"垃圾收集器",但这是否意味着Java应用程序中完全没有内存泄漏?如果没有,它们是如何以及为什么发生的?
我对使用JavaSE的应用程序中的场景更感兴趣.
小智 15
否 - Java中仍然存在内存泄漏.他们只是一个"不同类型".
计算机科学(或泄漏,在此上下文中)的内存泄漏发生在计算机程序消耗内存但无法将其[内存]释放回操作系统时.
对于Java,它(通常)是指未使用/不需要的对象永远不能进行回收.例如,对象可以存储在全局List中,即使以后从未访问过对象也不会被删除.在这种情况下,JVM不会释放对象/内存 - 它不能 - 因为稍后可能需要该对象,即使它永远不会.
(另外,一些对象,例如直接分配的ByteBuffers也会消耗"out of JVM heap"内存,由于终结器和内存压力的性质,这些内存可能无法及时回收.)
在Java的情况下,"内存泄漏"是一个语义问题,而不是"在任何情况下都无法释放"的问题.当然,有了错误的JNI/JNA代码,所有赌注都关闭;-)
快乐的编码.
归档时间: |
|
查看次数: |
1928 次 |
最近记录: |