<分区>
我不明白为什么 System.out.println(name) 输出 Sam 而不受方法的 concat 函数的影响,而 System.out.println (names) 作为方法的附加方法的结果输出 Sam4。为什么受影响的是 StringBuilder 而不是 String?通常,对对象引用的调用方法会影响调用者,所以我不明白为什么 String 结果保持不变。提前致谢
public static String speak(String name) {
name = name.concat("4");
return name;
}
public static StringBuilder test(StringBuilder names) {
names = names.append("4");
return names;
}
public static void main(String[] args) {
String name = "Sam";
speak(name);
System.out.println(name); //Sam
StringBuilder names = new StringBuilder("Sam");
test(names);
System.out.println(names); //Sam4
}