在方法调用时,如果用的是传值调用的话,方法只是将定义在方法外的变量作复制,然后进行运算,变量本身不发生改变。可以下代码的BufferReplace()方法执行后,变量textBufferString的值发生了改变,请问为什么?
public class T6 {
public static void StringReplace(String text){
text=text.replace('j', 'i');
System.out.println(text);
}
public static void BufferReplace(StringBuffer text){
text=text.append("C");
}
public static void main(String[] args){
String textString=new String("java");
StringBuffer textBufferString=new StringBuffer("java");
StringReplace(textString);
BufferReplace(textBufferString);
System.out.println(textString+textBufferString);
}
}
public class T6 {
public static void StringReplace(String text){
text=text.replace('j', 'i');
System.out.println(text);
}
public static void BufferReplace(StringBuffer text){
text=text.append("C");
}
public static void main(String[] args){
String textString=new String("java");
StringBuffer textBufferString=new StringBuffer("java");
StringReplace(textString);
BufferReplace(textBufferString);
System.out.println(textString+textBufferString);
}
}
String参数也是对象啊,怎么不见它也改变?