在JAVA中,指出下列程序运行的结果( )
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;
}
}good and abc
good and gbc
test ok and abc
test ok and gbc
Java中,String虽然是对象,传递的是引用,但String是特殊的,String是不会变的,也存在常量池,当字符串发生变化时,实际上是引用发生了变化,指向了新的字符串,所以参数传递String时,传入参数不会变化。
数组作为参数传递时是传递的对象引用,所以修改数组元素会导致原始数组发生变化。
数组作为参数传递时是传递的对象引用,所以修改数组元素会导致原始数组发生变化。