Oi Givaldo, tudo bem?
Desculpe pela demora em obter retorno.
O que o professor fez foi apenas digitar nome.replace("A", "a")
. Tecnicamente, em outros objetos, fazer apenas isso alteraria o objeto, porém, no caso da classe String, isso não é feito.
Quando você faz nome = nome.replace("A", "a")
, por debaixo dos panos o Java está criando um novo objeto na memória do tipo String, chamado "alura". A referência nome agora irá apontar para esse objeto, e não para o "Alura". Por isso os objetos do tipo String são imutáveis: eles são criados na memória e, mesmo que utilizemos métodos para modificá-los, não estamos realmente modificando-os, mas criando um novo objeto com a modificação desejada.
Inclusive, caso conseguíssemos utilizar um método para chegar à palavra "Alura" novamente, a JVM seria inteligente o suficiente para se lembrar que esse objeto já existe nela e apenas "reapontar" a referência para a palavra existente.
Espero ter ajudado! Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!