Java: Diferencia entre == y .equals()
Pregunta de Invitado | 25/09/2020 a las 09:44
En Java, parece que puede comparar una cadena / string de dos formas diferentes. Una vez con == y una vez con .equals().
He probado en ambos sentidos y ambos me dan los mismos resultados (TRUE si la cadena es idéntica, FALSE si no).
Entonces, ¿por qué existen dos métodos para hacer lo mismo? ¿O hay realmente una diferencia oculta y existen posibilidades en las que uno debería preferir una de las formas?
Temas Relacionados
Java: Split en el punto str.split(".") no funciona
Pregunta | 1 Respuesta
MySQL: Eliminar Datos de Tabla - Diferencia entre TRUNCATE, DELETE y DROP
Tutorial | 0 Comentarios
Java: Mantener Campos vacíos en Split-Array
Consejo | 0 Comentarios
Diferencia entre Todo Incluido y Pensión Completa
Pregunta | 1 Respuesta
Java/Android: Comparación de String s1==s2 no funciona
Pregunta | 1 Respuesta
Java: IntToStr - Convertir Número entero String
Pregunta | 1 Respuesta
Java: Aplicación Swing debe usar el Estilo del Sistema Operativo
Pregunta | 1 Respuesta
Aviso Importante
Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.
Participar
Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.
La comparación con == y con .equals() solo conduce al mismo resultado si no solo el contenido de las variables comparadas es igual, sino también la referencia de los objetos comparados.
Por ejemplo, suponiendo que tiene dos variables de cadena que tienen el mismo contenido pero referencias diferentes, la comparación == devuelve, no obstante, false:
Las variables a y b son objetos independientes y, por lo tanto, también tienen referencias independientes diferentes aunque su contenido sea el mismo. Por lo tanto, la comparación a == b devuelve FALSE.
Si queremos comparar el contenido, estamos usando .equals(). Esto devuelve TRUE porque ambas cadenas tienen el valor "abc".
La string c tiene la misma reverencia que la string a. Por lo tanto, comparar tanto con == como con .equals() devuelve TRUE.
26/09/2020 a las 16:24