Olá, tudo bem? Na video aula String e Imutabilidade, o professor Nico comenta sobre as duas formas de inicializar um objeto do tipo String:
String nome = "Maria";
String nome2 = new String("Marta");
O professor comenta que, o segundo modo de inicializar é considerado uma má prática , pois "por debaixo dos panos", a máquina virtual não consegue realizar otimizações que na primeira forma consegue. Poderiam elencar quais são estas otimizações e me explicar mais um pouco sobre a diferença entre essas formas?