puede cualquier cuerpo explicarme qué está pasando en la salida. Si == se usa para comparar dos ref. variable simplemente verifique su referencia si son iguales, entonces ingrese si cuerpo, entonces por qué diablos aa == bb es igual si creamos el método estático valueOf() y ee == ff no es igual (lo cual está bien) si crea su objeto utilizando una nueva palabra clave?operador == comportamiento differet en el objeto de la clase contenedora
static void main(String args[])
{
Integer aa = Integer.valueOf("12");
Integer bb = Integer.valueOf("12");
if(aa==bb)System.out.println("aa==bb");
if(aa!=bb)System.out.println("aa!=bb");
Integer ee = new Integer("12");
Integer ff = new Integer("12");
if(ee==ff)System.out.println("ee==ff");
if(ee!=ff)System.out.println("ee!=ff");
}
Salida:
== aa bb
ee = ff
Un artículo interesante que describe su problema: http://tech.puredanger.com/2007/02/01/valueof/ –