传递值(StringBuilder vs String)
2022-09-04 05:33:39
我不明白为什么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
}