答案为什么不是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"只开辟一个