输出的结果为什么是那样的?···
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.println(ex.str+"and");
System.out.println(ex.ch);
}
public void change(String str,char ch[]){
str="test.ok";
ch[0]='g';
}
}
java String --------------------编程问答-------------------- 打印:
goodand
gbc
change函数没有改变ex对象的str值,所以str不变。
char[]引用传进去,第一个被改了。所以是gbc --------------------编程问答-------------------- 你这是一个面试题吧..
考的是对String和char的理解
打印:
goodand
gbc
String类的本质是字符数组char[], 并且其值不可改变,
所以str="test.ok"; 无效 --------------------编程问答-------------------- change()中的str和传进来的ex.str是两个变量,但值相同,执行str="test.ok"后,str的值改变指向"test.ok",但ex.str却没有任何变化,所以还是会输出原来的值
补充:Java , Java EE