我有一個類MyClass
與會員float[] myArray
。我建立基於以下幾點:Java當我將一個數組參數賦值給構造函數中的成員時會發生什麼?
public MyClass(float[] initArray) {
myArray = initArray;
}
我想知道在引擎蓋下會發生什麼:做的JVM設置的指針一樣嗎?我是否有失去myArray
變量的垃圾收集器的風險?
難道是最好做到以下幾點:
public MyClass(float[] initArray) {
int len = initArray.length;
myArray = new float[len];
System.arraycopy(initArray, 0, myArray, 0, len);
initArray = null;
}
我問,因爲我在哪裏內存資源緊張的嵌入式編程環境,我不希望失去變量(例如第一個例子)或者浪費額外的空間(例如,通過將initArray
設置爲空,我希望GC照顧它並將該RAM還給我)。
- 編輯 - 在第一種方法中,如果
initArray
是在其他函數中創建的局部變量會發生什麼? 謝謝。