¿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;