Saltar al contenido

¿== verifica la igualdad total en booleanos? -Java

Traemos la mejor solución que hemos encontrado en internet. Nuestro deseo es que te sea de ayuda y si quieres aportar algún detalle que nos pueda ayudar a crecer siéntete libre de hacerlo..

Solución:

¿== verifica la igualdad total en booleanos? -Java

Depende de si estás hablando de Booleans (el envoltorio del objeto, tenga en cuenta la mayúscula B) o booleans (el primitivo, tenga en cuenta la minúscula b). Si estás hablando de Booleans (el envoltorio del objeto), como con todos los objetos, == cheques para identidadno equivalencia. Si estás hablando de booleans (primitivas), verifica la equivalencia.

Entonces:

Boolean a, b;
a = new Boolean(false);
b = new Boolean(false);
System.out.println("a == b? " + (a == b)); // "a == b? false", because they're not the same instance

Pero

boolean c, d;
c = false;
d = false;
System.out.println("c == d? " + (c == d)); // "c == d? true", because they're primitives with the same value

Con respecto a las cadenas:

Escuché que si comparo 2 cadenas con == entonces solo obtendré true atrás si las cadenas son idénticas y ambas se refieren al mismo objeto/instancia…

No es realmente un “y”: == será solo comprobar si los dos String Las variables se refieren a lo mismo. String ejemplo. por supuesto, uno String La instancia solo puede tener un conjunto de contenidos, por lo que si ambas variables apuntan a la misma instancia, naturalmente, los contenidos son los mismos… 🙂 El key el punto es que == reportará false por diferenteString instancias incluso si tienen los mismos caracteres en el mismo orden. Por eso usamos equals en ellos, no ==. Las cadenas pueden volverse un poco confusas debido a interning, que es específico para cadenas (no hay equivalente para Booleanaunque cuando usas Boolean.valueOf(boolean), obtendrá un objeto en caché). También tenga en cuenta que Java no tiene cadenas primitivas como las primitivas. boolean, intetc

Si tiene un objeto, use iguales, cuando no, puede ejecutar cosas como esta. (caché de VM para primitivas de autoboxing)

    public static void main(String[] args)
       Boolean a = true;
       Boolean b = true;
       System.out.println(a == b);
       a = new Boolean(true);
       b = new Boolean(true);
       System.out.println(a == b);
   

la salida es VERDADERO y FALSO

Al usar ( == ) con booleanos,

  1. Si uno de los operandos es un envoltorio booleano, primero se desempaqueta en un primitivo booleano y se comparan los dos.

  2. Si ambos son envoltorios booleanos, creados con la palabra clave ‘nuevo’, entonces sus referencias se comparan como en el caso de otros objetos. new
    Boolean("true") == new Boolean("true")
    es false

  3. Si ambos son envoltorios booleanos, creados sin la palabra clave ‘nueva’,

    Boolean a = false;
    Boolean b = Boolean.FALSE;
    // (a==b) return true
    

valoraciones y comentarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *