import java.util.Arrays;
public class King22 {
public static void main(String args[]) {
String i="111";
String[] i1={"bbb","aaa"};
num(i,i1);
System.out.println(i);
System.out.println(Arrays.toString(i1));
}
public static void num(String i,String[] i1){
i="1111";
i1[0]="22220";
i1[1]="23633";
}
}结果为:111[22220, 23633]
2 回答
已采纳
Caballarii
TA贡献1123条经验 获得超629个赞
传入num方法的String i和String[] i1都是传入的变量的地址。
对于String类型,地址内的内容不可变,只能变更地址(String类型不可变的真正含义),所以i="1111"就改变了i的地址,而main方法里的i还是原来的地址,所以String类型不改变。
对于String[]数组类型,num里得到是i1的地址,地址内的内容是可变的,所以i1里的值重新赋值以后就在main方法里得到了体现。
不停地追逐
TA贡献10条经验 获得超4个赞
楼上的说的很正确,就是这个原因,num方法里面改变的是i的地址信息和数组所对应的地址里面的值,所以你在main方法里输出的时候显示的是i在main里的地址所对应的值,和已改变内容的数组的值
添加回答
举报
0/150
提交
取消