執行結果如下:
digits數組長度:4
3,5,12,
0,0,0,0,
digits數組長度:3
數組初始化之後在記憶體中的存儲如下圖,在堆中有2個新的數組對象,棧中有2個分别指向這兩個數組對象的引用變量:
在執行digits = numbers指派後,雖然看似digits的數組長度看似由4變成3,其實隻是numbers和digits指向同一個數組對象而已。
而digits本身失去引用而變成垃圾,等待垃圾回收來回收(但其長度仍然為4)。如圖:
了解java垃圾回收看這裡:java垃圾回收機制是什麼
原文位址:http://blog.csdn.net/ooppookid/article/details/51404629