在C/C++
中遇到一些内存泄漏后,我想知道Java
中是否存在内存泄漏。快速搜索将我带到以下stackoverflow thread。
@ david-wasser对这个线程的评论是:
ObjectA-> ObjectB
在此示例中,ObjectA是代码中活跃使用的对象。 但是,ObjectA包含对ObjectB的引用,该引用有效 已失效(即:ObjectB已从 程序员的观点,死了),但是程序员忘记设置 ObjectA中对null的引用。在这种情况下,ObjectB已被“泄漏”。
我不太明白为什么垃圾收集器不能解决这个问题?垃圾收集器的工作不是解决这类memory leaks
吗?
此外,我想看看一个实现该想法的基本示例。
P.S我宁愿为此开一个新话题,而不是在6岁的剧院里发表评论。
答案 0 :(得分:0)
GC仅收集不再从程序中引用的对象,因为objectA中对objectB的引用未设置为null,因此它永远都不适用于GC。
GC永远不会知道objectB是不是一个抓取对象,因为代码会一直保留对该对象的引用。