【发布时间】:2024-04-28 01:55:01
【问题描述】:
我有一个关于数组地址的问题。假设我们有这段代码:
main(){
int[] numbers = {1, 2, 3};
method(numbers);
}
method(int[] methodNumbers){
methodNumbers= new int[methodNumbers.length];
return methodNumbers;
}
这是我认为我知道的。如果我错了,请纠正我。
所以我知道有主堆栈框架、方法堆栈框架和堆。在我们的 main 中,存储了 int[] numbers。它指向堆中存储索引的地址。我们将int[] numbers 传递给methodNumbers 参数,所以现在它们指向堆中的相同位置。在我们的方法中,我们为methodNumbers 声明了一个新的int,所以现在int[] methodNumbers 数组指向堆中的一个新位置。但最后我们返回methodNumber。
我的问题是int[] numbersArray 指向最后的位置。是指向同一个地方还是和methodNumbers指向同一个位置?
【问题讨论】:
-
您提供的代码中没有 int[] numbersArray
-
numbers指向与方法调用之前相同的对象。
标签: java arrays reference location