Olá, primeiramente queria parabeniza-los pela aula. Didática execelente.
Gostaria de saber sobre o conceito de imutabilidade de um objeto, pois não compreendi a imutabilidade de uma String direito. Se pensarmos em uma classe qualquer, podemos faze-la da seguinte forma:
public class ClasseNormal {
public void faleAlgo(){
System.out.println("Objetos são imutáveis!");
}
}
ClasseNormal novaClasse = new ClasseNormal();
Neste objeto do tipo Classe normal, o que necessariamente é imutável? Os atributos, métodos? porque a qualquer momento posso mudar essas informações nele contido.
A mesma dúvida eu tenho com a classe String, vamos instaciar a seguinte objeto do tipo String:
String curso = "Alura";
Neste caso, não podemos mudar o nome da variável de referência 'curso', 'Alura' não é o nome da variável de referência do tipo String, por que então eu não posso fazer curso = "Java"?
Obrigado.