Ich verstehe nicht, warum System.out.println (Name) Ausgänge Sam ohne durch die Methode der concat-Funktion beeinträchtigt zu werden, während System.out.println (Namen) Ausgaben Sam4 als Ergebnis der Append-Methode der Methode. Warum ist StringBuilder betroffen und nicht String? Normalerweise wirkt sich das Aufrufen von Methoden auf einen Verweis auf ein Objekt auf den Aufrufer aus, daher verstehe ich nicht, warum das String-Ergebnis unverändert bleibt. Vielen Dank im VorausPass-by-Wert (String vs 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
}
Viele Antworten hier, im Grunde sagen alle das Gleiche. Schwer zu wählen, um zu upvote :) –
@ArnaudDenoyelle Zum Glück müssen Sie nicht nur eine wählen;) –
@ArnaudDenoyelle wie Mark Rotteveel sagte, Helenesh ist derjenige, der diese schwierige Entscheidung treffen muss;) – Karthik