gpt4 book ai didi

java - 当在方法中传递任何数组并在方法中操作数组时,为什么我的实际数组被操作

转载 作者:行者123 更新时间:2023-12-02 05:29:21 25 4
gpt4 key购买 nike

这是一个方法 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com