这是一个带有fun(int [] a3)方法的代码,当调用此函数并传递a1 []并在方法中写入操作代码时,实际的a1 []值将变为{3,7,5}而不是{3,4, 5},我们知道Java是基于passbyvalue概念的。请建议任何人。
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a1 = { 3, 4, 5 };
int[] a2 = fun(a1);
System.out.print(a1[0] + a1[1] + a1[2] + "");
System.out.print(a2[0] + a2[1] + a2[2]);
}
static int[] fun(int[] a3) {
a3[1] = 7;
return a3;
}
}
输出-
15 15
最佳答案
Java通过值传递对数组的引用。数组本身是可变对象,因此可以在方法中进行修改。但是,您不能将传递给该方法的参数更改为引用其他数组。如果这样做,则从方法返回时,变量仍将引用原始数组。
关于java - 当在方法中传递任何数组并在方法中操纵该数组时,为什么要对我的实际数组进行操纵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25698824/