Pessoal o que acontece com esse código, pq o operador == verifica endereço de memória
certo? porém nesse código quando é feito o teste se s1 == s2 acaba entrando nessa condição
alguém pode me explicar esse código?
é uma maneira do java consumir menos recurso na criação de strings.
peczenyj
é uma forma do compilador/maquina virtual otimizar o uso de memoria.
se vc faz
String s1 = "oi";
String s2 = "oi";
As variaveis s1 e s2 apontam para a mesma referência de “oi”. Isto também acontece com Wrappers de inteiros até 127 se não me engano.
Se vc quer garantir que são objetos distintos use new:
String s1 = new String("oi");
String s2 = new String("oi");
Como String, Long, Integer, são objetos imutaveis, se eles apontam para o mesmo objeto ou não é “irrelevante”.