Duplicar posible:
Integer wrapper objects share the same instances only within the value 127?¿Por qué == verdadero para algunos objetos enteros?
he copiado el siguiente fragmento de programa desde el Khalid Mughal SCJP, pero soy incapaz de entender
la salida.
public class RQ200_60 {
public static void main(String[] args) {
Integer i = -10;
Integer j = -10;
System.out.print(i==j); // output: true -- why true?
System.out.print(i.equals(j)); // output: true
Integer n = 128;
Integer m = 128;
System.out.print(n==m); // output: false
System.out.print(n.equals(m)); // output: true
}
}
El programa anterior dando salida verdadera de la primera sentencia print pero supone que debe dar falsa, ya que es referencia de comparación con == operador relacional. Pero la tercera impresión da falso y no entiendo esta inconsistencia.
¡Las explicaciones son muy apreciadas!
http://stackoverflow.com/ preguntas/7309640/compare-two-integer, http://stackoverflow.com/questions/5581913/wrapper-class-and-operator, http://stackoverflow.com/questions/5117132/wrapper-objects-share-the- same-address-space-only-within-the-value-127, http://stackoverflow.com/questions/5865056/integer-construction-variations –