Warum funktioniert der Gleichheitsoperator für den Integer-Wert bis zur Zahl 128? [Duplikat]
Diese Frage hat hier bereits eine Antwort:
Warum ist 128 == 128 falsch, aber 127 == 127 ist wahr, wenn Integer-Wrapper in Java verglichen werden? 6 AntwortenWarum eine Ganzzahl?"=" Operator funktioniert nicht für 128 und nach Integer-Werten? Kann jemand diese Situation erklären?
Dies ist meine Java-Umgebung: Java-Version"1.6.0_37"
Java (TM) SE-Laufzeitumgebung (Build 1.6.0_37-b06)
Java HotSpot (TM) 64-Bit-Server-VM (Build 20.12-b01, gemischter Modus)
Beispielcode:
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");
}
}
Ein Teil der Konsolenausgabe:
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
Vielen Dank!