Perché numero intero "=" L'operatore non funziona per 128 e dopo i valori Integer? Qualcuno può spiegare questa situazione?Perché l'operatore uguale funziona per il valore intero fino al numero 128?
Questo è il mio ambiente Java: versione java "1.6.0_37"
Java (TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot (TM) 64 bit di server VM (build 20.12-b01, modalità mista) Codice
Esempio:
Integer a;
Integer b;
a = 129;
b = 129;
for (int i = 0; i < 200; i++) {
a = i;
b = i;
if (a != b) {
System.out.println("Value:"+ i + " - Different values");
} else {
System.out.println("Value"+ i + " Same values");
}
}
Una parte di output di console:
Value:124 - Same values
Value:125 - Same values
Value:126 - Same values
Value:127 - Same values
Value:128 - Different values
Value:129 - Different values
Value:130 - Different values
Value:131 - Different values
Value:132 - Different values
Grazie!
da -128 a 127 –
'=' è l'operatore di assegnazione e non lo si utilizza nel codice di esempio corrente; intendevi '=='? – geoffspear