Что происходит при изменении строкового литерала? [Дубликат]
На этот вопрос уже есть ответ:
Является ли Java «передачей по ссылке» или «передачей по значению»? 78 ответовtoUpperCase в Java не работает 5 ответовЯ хочу изменить строковый литерал на заглавные. Вот мой код:
// 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
Мой вопрос: 1.b
нельзя перевести в верхний регистр, ноc
а также"Test"
может. Зачем
Что я знаю: 1.a
а такжеb
ссылка на тот же объект в пуле строк. 2. Строка неизменна, но, похоже, не имеет отношения к этому вопросу.