Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Comparaciones Java

oldBoy

Bovino Milenario
Desde
9 Dic 2007
Mensajes
1.484
Por qué?

public class why{
public static void main(String[] args) {
int a = 1000, b = 1000;
System.out.println(a==b); //true
Integer c = 1000, d = 1000;
System.out.println(c==d); //false
Integer e = 100, f = 100;
System.out.println(e==f); //true
}
}

Es sólo una pregunta que vi hace tiempo, no empiecen con que es tarea.
 
que onda mi sKeLdEn, pues la onda es de que son objetos los Integer, y pues puede que Java a veces diga que son iguales o no(esa desicion la toma java), porque al comparar con == hace una comparacion de la posicion en memoria. Para hacer lo que se quiere en el ejemplo, es mejor comparar los objetos con el metodo 'equals'
 
Así es. En primera sabemos que es un error comparar objetos con "==" ya que ese operador nos indica si apunta a la misma ubicación de memoria. Deberemos utilizar ya sea equals() para comparar valores o bien instanceof para comparar tipos.
Curiosamente funciona para valores entre -127 y 128 ya que para esos valores, como bien dijo malvadomx, Java escoge implementarlos de modo inmediato.
En fin, sólo una curiosidad.
 
Volver
Arriba