Dlaczego Integer "=" operator nie działa dla wartości 128 i po wartościach całkowitych? Czy ktoś może wyjaśnić tę sytuację?Dlaczego operator równości działa dla wartości całkowitych do liczby 128?
To jest moje środowisko Java: wersja java "1.6.0_37"
Java (TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot (TM) 64- bit Server VM (build 20.12-B01, tryb mieszany) kod
próbki:
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");
}
}
Część wyjścia konsoli:
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
Dzięki!
od -128 do 127 –
'=' jest operatorem przypisania i nie używa się go w aktualnym przykładowym kodzie; miałeś na myśli '=='? – geoffspear