Quiero demostrar con algunas líneas de código que en Java, para comparar dos cadenas (String
), debe usar equals()
en lugar del operador ==
.Demostración de comparación de cadenas con Java
Aquí es algo que he intentado:
public static void main(String Args[]) {
String s1 = "Hello";
String s2 = "Hello";
if (s1 == s2)
System.out.println("same strings");
else
System.out.println("different strings");
}
me esperaba este resultado: different strings
, ya que con la prueba s1 == s2
realidad estoy comparando dos referencias (es decir, direcciones) en lugar del contenido del objet.
Pero en realidad obtuve esta salida: same strings
!
Navegar por Internet encontré que algunos implementación Java optimizará el código anterior para que s1
y s2
se realidad referencia a la misma cadena.
Bueno, ¿cómo puedo demostrar el problema usando el operador ==
al comparar cadenas (u objetos) en Java?
En realidad, según el JLS, todos los compiladores de Java deben realizar esa optimización. – Darron