我遇到了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