[英]What exactly happens while you assign a reference to an element in Array in Java?
[英]What happens when you assign an array to another array in java?
我這里有一些 Java 代碼,我正在為 ArrayList 創建一個 ADT(我知道 Java 框架有一個,但我只想看看它下面是什么)。 在這里,我創建了一個使數組大小加倍的方法。
我的問題是,當我執行 oldArray=newArray 時,內存中會發生什么。 我的猜測是指向 oldArray 的變量現在指向新數組。 但是現在,在內存中,這是否意味着有 2 個變量指向新數組? 而且由於沒有對舊數組的引用,垃圾收集器會從內存中刪除舊數組嗎?
public void resize(int newCapacity) {
E[] newData = (E[]) new Object[2*data.length];
for(int i=0; i<data.length; i++) {
newData[i] = data[i];
}
data = newData;
}
newData
和data
都是您創建的對象的引用,它們位於堆棧內存中,根據垃圾收集器的工作方式,當執行路徑到達作用域結束時,每個引用都會被刪除,在這兩個引用是刪除垃圾進入堆以查看沒有引用的對象,然后將刪除該對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.