2013-07-24 56 views

回答

1

我對A.class進行了反編譯,得到了這個結果,它顯示了兩個對A的引用,一個來自B,另一個來自C.但這實際上意味着C實際上有兩個引用 - 一個是它自己的,另一個是從B繼承的。

class A { 

    class B { 
     final A this$0; 
     B() { 
      this$0 = A.this; 
     } 
    } 

    class C extends B { 
     final A this$0; 
     C() { 
      this$0 = A.this; 
     } 
    } 
} 
+0

JVM並不需要嚴格遵循字節碼和浪費空間來確保2個相等的引用。 – leventov

相關問題