¿Diferencia entre == e iguales en Java?

¿Diferencia entre == e iguales en Java?

== :

Al juzgar el tipo básico: compare si los valores de dos tipos de datos básicos son iguales, por ejemplo: int 10 e int 20, devuelve falso;

Al juzgar el tipo de referencia: la comparación es si las direcciones de memoria de los dos objetos son iguales, por ejemplo: si dos números enteros diferentes son 1000, el valor de retorno es falso; cuando necesita prestar atención: si el valor de dos números diferentes Enteros es 10, devuelve el valor es verdadero;

es igual a:

El método equals es un método proporcionado en la clase Object, que se utiliza para definir si el contenido del objeto es igual; (nota: el método equals no se puede aplicar a variables de tipos de datos básicos)

Si no se reescribe el método equals, se compara la dirección del objeto apuntado por la variable del tipo de referencia;

Si clases como String y Date reescriben el método equals, se comparan los contenidos de los objetos señalados. Por ejemplo, para determinar si la Cadena es igual;

Primero: mire la memoria, luego mire el tipo de datos, luego mire si la longitud de la cadena es consistente y finalmente compare el contenido de la cadena

Reponer:

Para ahorrar memoria dentro de Java, hay una matriz en la clase IntegerCache que almacena en caché objetos Integer con valores de -128 a 127. Cuando llamamos a Integer.valueOf(int i), si el valor de i está entre -128 y 127, se devolverá un objeto directamente desde este caché; de lo contrario, un nuevo objeto Integer será nuevo. Es decir: cuando definimos el rango de dos enteros entre [-128—+127] y tienen el mismo valor, use == para comparar el valor con verdadero;

Cuando es mayor que 127 o menor que -128, aunque los dos valores sean iguales, se creará un nuevo entero, luego se comparan los dos objetos y se devuelve falso al usar == para comparar;

Supongo que te gusta

Origin blog.csdn.net/weixin_56602545/article/details/130100655
Recomendado
Clasificación