Java 调用方法并引用数组
答案是5510,我不明白为什么,因为我以为是555。 我原以为在这种情况下会改变原来的数组 谁能帮我理解这个Java 调用方法并引用数组,java,Java,答案是5510,我不明白为什么,因为我以为是555。 我原以为在这种情况下会改变原来的数组 谁能帮我理解这个 谢谢大家! a=b语句将“b”的引用指定给“a” 如果你像a=newint[10]那样编码它将5510打印为输出。因此,除非您使用“new”,否则它将充当按值调用,并且在被调用方法中所做的更改不会反映在调用方法中 a=b语句将“b”的引用指定给“a” 如果你像a=newint[10]那样编码它将5510打印为输出。因此,除非您使用“new”,否则它将充当按值调用,并且在被调用方法中所做的
谢谢大家!
a=b代码>语句将“b”的引用指定给“a”
如果你像a=newint[10]那样编码代码>它将5510打印为输出。因此,除非您使用“new”,否则它将充当按值调用,并且在被调用方法中所做的更改不会反映在调用方法中 a=b代码>语句将“b”的引用指定给“a”
如果你像a=newint[10]那样编码代码>它将5510打印为输出。因此,除非您使用“new”,否则它将充当按值调用,并且在被调用方法中所做的更改不会反映在调用方法中 由于a
是一个基元类型的数组,它是methodOne()
的一个传递值,因此主方法范围内的变量a
保持不变 由于a
是一个基元类型的数组,它是methodOne()
的一个传递值,因此主方法范围内的变量a
保持不变 将methodOne参数名称更改为“int[]c”将使您易于理解。methodOne中的参数“a”与main方法中的变量“a”完全不同。将methodOne参数名称更改为“int[]c”将使您易于理解。methodOne中的参数“a”与main方法中的变量“a”完全不同。简单的回答是:参考变量“a”是函数“main”和“methodOne”的局部变量 简单的回答是:参考变量“a”是函数“main”和“methodOne”的局部变量 在main()方法中,[]表示int[10]数组。将int[10]数组传递给methodOne()时,将为refereint[10]数组创建一个新的[]变量,该变量为[]。现在有2个a[]变量引用int[10]数组
现在创建b[],它引用int[5]数组。将b[]的数组分配给a[](属于methodOne())。但是main方法中的[]仍然指int[10]数组。在main()方法中,[]指int[10]数组。将int[10]数组传递给methodOne()时,将为refereint[10]数组创建一个新的[]变量,该变量为[]。现在有2个a[]变量引用int[10]数组
现在创建b[],它引用int[5]数组。将b[]的数组分配给a[](属于methodOne())。但是main方法中的[]仍然引用int[10]数组。在:methodOne()
中,“a”是该方法的局部。
因此,当您执行a=b
时
它不会对main()
中的变量“a”进行任何更改
然后再次在main()中打印变量“a”:
因此,它引用局部变量a并将其打印出来。在:methodOne()
中,“a”是该方法的局部变量。
因此,当您执行a=b
时
它不会对main()
中的变量“a”进行任何更改
然后再次在main()中打印变量“a”:
所以它引用了一个局部变量a并打印它
public class midterm2 {
static void methodOne(int[] a) {
int[] b = new int[5];
a=b;
System.out.print(a.length);
System.out.print(b.length);
}
public static void main(String[] args) {
int[] a = new int[10];
methodOne(a);
System.out.print(a.length);
}
}