public class Test {
String str=new String("good");
char[] ch={'a','b','c'};
public static void main(String[] args) {
Test test=new Test();
test.change(test.str);
System.out.print(test.str+" and ");
System.out.print(test.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
//结果:goodandgbc
一开始我笃定结果是test okandgbc,因为老师上课强调过String类型是引用数据类型,我一想这不跟数组类型一样,被引用的时候传递的是地址值,所以str值也变了,结果也看到了,错了
通过一番查资料得知,当一个String对象作为参数传递给方法的时候,其实传递的是一个该对象的copy地址值,传递并不是原来的引用;而数组作为参数传递的时候,则就是原引用,因此,ch结果改变了。
注:每当String对象作为参数传递给方法,都会复制一份引用,传递的并不是原来的引用!