关于Java中存不存在内存泄露问题。我们首先要了解什么是内存泄露。在Java中内存泄露简而言之就是对象使用完,对象所占用的内存空间没有被释放,直至程序运行结束。
那么现在问题又来了!我们不是说Java拥有良好的垃圾回收机制吗?为什么还是存在内存泄露呢?这时候我们就有必要了解下GC的机制了。当在程序运行过程中,堆内存空间的对象没有被引用的时候,该堆内存空间就属于垃圾空间,就应该等待GC的回收,这是没有问题的。但是呢!还存在这样的一种情况,就是当堆内存空间被其他的对象(记为A对象)所引用的时候,就算堆内存空间的对象自身释放,如果A对象不释放对其的引用,GC是不能回收的,所以就会存在内存泄露。类似下图
不正确之处,望指正。谢谢
时间: 2024-10-12 15:51:10