me encontré el siguiente programa,problemas cadena de Java
String firstString = "String";
String secondString = "String";
String thirdString = new String("String");
System.out.println(firstString == secondString);
System.out.println(firstString == thirdString);
System.out.println(firstString.intern() == thirdString);
System.out.println(firstString.intern() == thirdString.intern());
System.out.println(firstString.intern().equals(thirdString.intern()));
System.out.println(firstString == thirdString);
y mi salida fue
true
false
false
true
true
false
supe que la cadena de piscinas con JVM mismo contenido que mismas cadenas. ¿Está bien? Si eso es cierto, ¿por qué no firstString == thirdString return false? ¿Jvm solo agrupa la cadena solo inicializada con: "" y no con un nuevo operador?
Pruebe también: 'firstString == thirdString.intern()', para ver que los literales de cadena se internalizan automáticamente. –