Was passiert, wenn ein String-Literal geändert wird? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Ist Java "Pass-by-Reference" oder "Pass-by-Value"? 78 answerstoUpperCase in Java funktioniert nicht 5 AntwortenIch möchte ein String-Literal in Großbuchstaben ändern. Hier ist mein Code:
// a and b are the same literal
String a = "Test";
String b = "Test";
// now I want to change all b's letter
// into uppercases, but fail.
b.toUpperCase();
System.out.println("a = " + a + ", " + "b = " + b);
// print: a = Test, b = Test
String c = "Test1";
System.out.println("c = " + c + " , c.toUpperCase() = "
+ c.toUpperCase());
// print: c = Test1 , c.toUpperCase() = TEST1
// change letters of "Test" literal
// into uppercase and success
System.out.println("Test".toUpperCase());
// print: TEST
Meine Frage ist: 1.b
kann nicht in Großbuchstaben geändert werden, aberc
und"Test"
können. Warum
Was ich weiß ist: 1.a
undb
Verweis auf dasselbe Objekt im String-Pool. 2. Die Zeichenfolge ist unveränderlich, scheint jedoch für diese Frage nicht relevant zu sein.