























内存泄漏(Memory Leak)通常指的是计算机程序中一种资源管理失当的问题。简单来说,就是程序申请了内存空间,但在不再使用它的时候,没有将其释放,导致这部分内存一直被占用,且无法被程序再次访问或操作系统回收。
在Java中,当一个对象A拥有另一个对象B的引用时,如果B只有来自A的这一个引用,并且A一直没有释放,则B也不会被释放。因为JVM并不知晓代码的业务逻辑,他只知道B还被其他对象引用,并且A也正在使用之中。因此JVM会认为,B对象还不可以回收。
然而,A对象没有移除到B对象的这个引用,有可能是因为业务逻辑处理不当所致。例如,当A是一个单例的全局对象管理器,管理一系列对象,而B对象恰好在业务逻辑中应该被回收,而没有回收时,B会一直存在于A的引用中。此时B就无法进入正常的回收逻辑中了。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。