天天看點

Java千百問_06資料結構(015)_數組和普通對象的引用變量有什麼差別

執行結果如下: 

digits數組長度:4 

3,5,12, 

0,0,0,0, 

digits數組長度:3

數組初始化之後在記憶體中的存儲如下圖,在堆中有2個新的數組對象,棧中有2個分别指向這兩個數組對象的引用變量: 

Java千百問_06資料結構(015)_數組和普通對象的引用變量有什麼差別

在執行digits = numbers指派後,雖然看似digits的數組長度看似由4變成3,其實隻是numbers和digits指向同一個數組對象而已。 

而digits本身失去引用而變成垃圾,等待垃圾回收來回收(但其長度仍然為4)。如圖: 

了解java垃圾回收看這裡:java垃圾回收機制是什麼

Java千百問_06資料結構(015)_數組和普通對象的引用變量有什麼差別

原文位址:http://blog.csdn.net/ooppookid/article/details/51404629