Eclipse Memory Analyzer (MAT)是一個用於堆轉儲分析的強大工具。它有幾個很好的特性可以有效地調試內存問題。‘incoming references’, ‘outgoing references’ 用就是這樣一種特性。在本文中,我們將討論傳入引用、傳出引用以及它們之間的區別。
public class A {
private C c1 = C.getInstance();
}
public class B {
private C c2 = C.getInstance();
}
public class C {
private static C myC = new C();
public static C getInstance() {
return myC;
}
private D d1 = new D();
private E e1 = new E();
}
public class D {
}
public class E {
}
public class SimpleExample {
public static void main (String argsp[]) throws Exception {
A a = new A();
B b = new B();
}
}
所有保存對象C引用的對象稱爲傳入引用。在本例中,對象C的傳入引用是對象A、對象B和類C。 Object C引用的所有對象都稱爲傳出引用。在這個例子中,對象C的傳出引用是對象D、對象E和類C。