我遇到了Android(Java)中称为LeakCanary的内存泄漏检测库,但无法理解泄漏内存的示例。任何人都可以解释他们的例子中显示的代码是如何以及为什么是内存泄漏。为什么这是内存泄漏
class Cat {
}
class Box {
Cat hiddenCat;
}
class Docker {
static Box container;
}
// ...
Box box = new Box();
Cat schrodingerCat = new Cat();
box.hiddenCat = schrodingerCat;
Docker.container = box;
,然后他们观看泄漏可变schrodingerCat
其给出如下所示的泄漏(我不知道如何与上面的代码)。
* GC ROOT static Docker.container
* references Box.hiddenCat
* leaks Cat instance
任何帮助解释泄漏以及如何检测与它有关将是非常有益的。也有一些适合初学者的好文章会很好。
谢谢!
这个很好的解释应该添加到LeakCanary的wiki中:) – tieorange