¿Qué imprime esto?
String a = new String("hi");
String b = new String("hi");
System.out.println((a == b) + " " + a.equals(b));Opciones
- true true
- true false
- false true (Opción correcta)
- false false
Respuesta
false true
Por qué
En objetos, == compara referencias: ¿ambas variables apuntan exactamente al mismo objeto en memoria? new String(...) siempre crea un objeto nuevo, así que a == b es false.
.equals() compara el contenido. Ambos strings contienen "hi", así que es true.
Regla: usa .equals() para comparar texto y otros objetos; usa == para primitivos y para comprobar null.
Recuerda
== compara referencias, equals() compara contenido.