这是我的代码,请在阅读问题之前查看它
package ict201jansem2012;
public class Qn3b {
public static void main(String[] args) {
int a = 1;
int b[] = {4,5};
String s = "Good luck!";
method1(b[1]);
System.out.println("(1) b[0] = "+b[0]+"; b[1] = "+b[1]);
method2(b);
System.out.println("(2) b[0] = "+b[0]+"; b[1] = "+b[1]);
method3(a);
System.out.println("(3) a = " + a );
method4(s);
System.out.println("(4) s = " + s );
}
public static void method1(int b) {
b = 7;
}
public static void method2(int[] b) {
b[0] = 3;
}
public static void method3(int a) {
a = 3;
}
public static void method4(String s) {
s = "UniSIM";
}
}
输出:(1) b[0] = 4;b[1] = 5
(2) b[0] = 3;b[1] = 5
(3) a = 1
(4) s = 祝你好运!
所以我的问题是,作为学习程序员,这对我来说很有趣。int b 数组 0 的索引值已更改,但未更改其他变量,例如 String s 和 int a。在我运行这个程序之前,我大致认为变量会随着方法被调用而改变它们的值,这是因为方法被调用并且主方法变量如 a、s 和 b 数组被传递,然后它们正在修改。
那么简而言之,为什么 b 数组 0 的索引被改变而其他变量没有改变呢?