我正在从 C++ 迁移到 Java,但我无法理解在 Java 中数组如何在创建它的方法之外持续存在。看看下面这个简单的代码:
public static int[] arrayMethod(){
int[] tempArray = {1, 2, 3, 4};
return tempArray;
}
public static void main(String[] args){
int arr[] = arrayMethod();
for(int i : arr){
System.out.println(i);
}
}
在 C++ 中,除非数组是使用运算符动态分配的,否则new
调用后数组将不存在,因为它是在方法中本地创建的。据我了解,Java 总是按值传递,而数组是引用类型,所以我的 c++ 逻辑会告诉我,我正在返回对本地创建的数组的引用。我错过了什么?