【发布时间】:2013-02-17 11:14:42
【问题描述】:
我正在从 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++ 逻辑会告诉我,我正在返回对本地创建的数组的引用。我错过了什么?
【问题讨论】:
标签: java pass-by-value local-variables