日期:2014-05-20  浏览次数:20888 次

答案为什么不是D,求详细解释
public class Example{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
A good and abc
B good and gbc
C test ok and abc
D test ok and gbc

------解决方案--------------------
答案应该选b
一个传值 一个传引用
------解决方案--------------------
good and gbc

------解决方案--------------------
LZ要弄清楚一下对象的引用呀
------解决方案--------------------
char是值传递,也就是只传入值,原本的不变
string引用传递传的是地址,方法中改变值原本的也就变了,因为是同一个地址里的值,这也是为什么比较字符串时要用equals()的原因。
注意:new string会开辟了两个空间,string s="dfgg"只开辟一个