Repaso
English
Java CoreBaseJV-04

¿Qué imprime esto?

String a = new String("hi");
String b = new String("hi");
System.out.println((a == b) + " " + a.equals(b));

Opciones

  1. true true
  2. true false
  3. false true (Opción correcta)
  4. 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.

Términos clave

Practica esta pregunta en Repaso