天天看點

有關對象位址和對象關系的認識

善于把握細節,或許有新發現

對象的位址和對象的解釋

  • 舉例 : 類 A 對象a
  • 操作:

    A a=new A();

  • 解釋:
    • a

      存儲的是

      A

      類型的對象引用。
    • a

      存儲在棧中,儲存的是對應新建立出對象的位址(堆中的位址)。
    • new A()

      建立的對象儲存在堆中 。
    • 通過

      a

      可以操作原對象,操作原對象的成員函數和成員變量,這樣是修改的原資料 。
    • 如果重複上面的步驟:

      a=new A();

      此時新的位址賦予a,a存儲的位址就是新的,之前的對象還在,但是無法擷取到了,在c++ 中就是屬于野指針,因為使用完成并沒有釋放記憶體,

      在java中有gc管理記憶體,是以這個沒有被引用的資源會在記憶體不足的時候銷毀掉,是以java中可以加強對對象的重用或者不用的時候及時取消引用,

      這樣會盡快的釋放記憶體,減少記憶體無謂的占用。