我有一个类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
是在其他函数中创建的局部变量会发生什么? 谢谢。