java字符串基础问题
public class Test{
String str=new String ("Girl");
char ch[]={'d','b','c'};
public static void main(String [] args){
Test x=new Test();
x.change(x.str,x.ch);
System.out.println(x.str+"and"+x.ch[0]+x.ch[1]+x.ch[2]);
}
public void change(String str,char ch[]){
str="Boy";
ch[0]='a';
}
}
最后输出结果为什么是Girl and abc,请各位大神详细解释一下,还有就是String 类字符串在创建后为什么不能被修改?
------解决方案--------------------
定义①→Object(name="张三",age="22") (引用①指向Object(name="张三",age="22") )//上一条这里写错了。。。
change(②){
②→Object(name="李四",age="55")
}
调用change方法,其实是让chage的参数②指向Object(name="张三",age="22"),在方法体内引用指向改变为②→Object(name="李四",age="55"),没有改变原来的对象,所以跟原有的①无关。
定义①→Object(name="张三",age="22")
change(②){
②.age="12"
}
这时是改变了②所引用的Object对象的age属性也就是改变了Object对象。而①始终指向这个对象,这时打印①,就是打印出来改变的Object