Qualcuno ha postulato in alcuni thread del forum che molte persone e anche esperti sviluppatori Java non avrebbero compreso la seguente tranquillità del codice Java.Comportamento sconcertante di == dopo la post-conversione
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1++ == i2++);
System.out.println(i1 == i2);
Come persona con un certo interesse per Java, ho dato il mio pensiero e sono arrivato al seguente risultato.
System.out.println(i1++ == i2++);
// True, since we first check for equality and increment both variables afterwards.
System.out.println(i1 == i2);
// True again, since both variables are already incremented and have the value 128
Eclipse mi dice il contrario. La prima riga è vera e la seconda è falsa.
Gradirei davvero una spiegazione.
Seconda domanda. Questo è Java specifico o questo esempio vale anche per i linguaggi basati su C?
try 'i1.equals (i2)' – vikingsteve
http://stackoverflow.com/questions/5117132/integer-wrapper-objects-share-the-same-instances-only-within-the-value-127 –
Questo la domanda è estremamente simile a quella pubblicata da @DominikKunicki –