1、記憶體分析
數組引用變數只是一個引用,這個引用變數可以指向任何有效的內存,只有當該引用指向有效記憶體後,才可通過該數組變數來存取數組元素。
與所有引用變數相同的是,引用變數是存取真實物件的根本方式。也就是說,如果希望在程式中存取數組物件本身,則只能透過這個數組的引用變數來存取它。
實際的陣列物件被儲存在堆疊(heap)記憶體中;如果引用該陣列物件的陣列引用變數是一個局部變數, 那麼它被儲存在堆疊(stack)記憶體中。
2、實例
如果堆記憶體中的陣列不再有任何引用變數指向自身,則此陣列將變成垃圾,由系統的垃圾回收機制回收所佔用的記憶體。所以,要使用垃圾收集機制來回收一個數組佔用的記憶體空間,您可以將這個數組變數分配為null,這樣就切斷了數組引用變數與實際數組之間的引用關係,從而使實際數字組成為垃圾。
在相互相容的前提下,允許一個陣列變數指向另一個實際的數組,而這個運算會造成數組長度可變的假象。以下:
public class ArrayInRam { public static void main(String[] args) { //静态初始化a int []a= { 5,7,20}; //动态初始化b int []b=new int[4]; //输出b的长度 System.out.println(b.length); //循环遍历输出a for(int aa:a) { System.out.print(aa+"\t"); } //b引用a b=a; //输出b的长度 System.out.println("\n"+b.length); } }
以上是java數組中怎麼將記憶體回收的詳細內容。更多資訊請關注PHP中文網其他相關文章!