Buondi a tutti...
Ho da poco iniziato a programmare in Java e subito mi sono imbattuto in un dubbio che non mi riesce di risolvere!!!
Questo e il codice:
codice:
Integer a = new Integer(1);
Integer b = new Integer(1);
System.out.println("a == b ? " + (a == b));
System.out.println("a.equals(b) ? " + (a.equals(b)));
//-----------------------------------------
Integer c = 1;
Integer d = 1;
System.out.println("c == d ? " + (c == d)); //Restituisce 'True' su due oggetti distinti???
System.out.println("c.equals(d) ? " + (c.equals(d)));
mentre questo e il risultato:
codice:
a == b ? false
a.equals(b) ? true
c == d ? true
c.equals(d) ? true
Ecco la domanda: come mai, nel caso 'c==d' viene restituito true anche se, i due oggetti sono completamente diversi??? Grazie di un eventuale risposta! :d