善於把握細節,或許有新發現
對象的地址和對象的解釋
- 舉例 : 類 A 對象a
- 操作:
A a=new A();
- 解釋:
a
存儲的是A
類型的對象引用。a
存儲在棧中,保存的是對應新創建出對象的地址(堆中的地址)。new A()
創建的對象保存在堆中 。- 通過
a
可以操作原對象,操作原對象的成員函數和成員變量,這樣是修改的原數據 。 - 如果重複上面的步驟:
a=new A();
此時新的地址賦予a,a存儲的地址就是新的,之前的對象還在,但是無法獲取到了,在c++ 中就是屬於野指針,因爲使用完成並沒有釋放內存,
在java中有gc管理內存,所以這個沒有被引用的資源會在內存不足的時候銷燬掉,所以java中可以加強對對象的重用或者不用的時候及時取消引用,
這樣會盡快的釋放內存,減少內存無謂的佔用。