因为数组是一个对象。。
java中的参数传递是引用传递。。
传递到
public
b(string[]
sss,string
s){
sss[0]="bbbbb";
sss[1]="ccccc";
s="2222";
}
这里的sss是那个数组对象的一个引用。。相当于指针。。
sss[0]="bbbbb";
sss[1]="ccccc";
这样处理相当于是在调用这个数组的对象的方法。。
即相当于在对这个对象做处理。。
所以这个对象的值改变了。。
但是string
[]
a={null,"aaaaa"};a这个引用依然指向那个对象。。所以输出结果就是改变后的结果。。
假如你将
public
b(string[]
sss,string
s){
sss[0]="bbbbb";
sss[1]="ccccc";
s="2222";
}
改为
public
b(string[]
sss,string
s){
string[]
strs
=
new
string[2];
strs[0]="bbbbb";
strs[1]="ccccc";
sss
=
strs;
s="2222";
}
这样的话..是不会改变那个对象的值的..
只是对sss这个引用重新赋值..让他指向了另一个对象而已..
这样的话前面的a引用依然指向那个对象..那个对象的值也不会改变..
为什么那个string对象的值没有改变呢..
跟上面一样了..
只是对s引用重新赋值了..让他指向了一个新的string对象..
而string
aa="111111";aa依然指向的是值为111111的这个string对象..
int[] a=new int[10];
for(int x=0;x
System.out.println(a[x]);
}
System.out.println(Arrays.toString(a));
这是数组给值和输出的代码
例如
int[] is = {28,7,15};
is[0]就是28