O que acontece quando um literal de string é alterado? [duplicado
Esta pergunta já tem uma resposta aqui:
Java é "passagem por referência" ou "passagem por valor"? 78 respostastoUpperCase em Java não funciona 5 respostasEu quero mudar uma literal de string para uma maiúscula. Aqui está o meu código:
// 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
Minha pergunta é: 1.b
não pode ser alterado para maiúsculo, masc
e"Test"
pode. Por quê
O que eu sei é: 1.a
eb
referência ao mesmo objeto no conjunto de cadeias. 2. String é imutável, mas não parece relevante para esta pergunt