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 Antworten

Warum 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!

Antworten auf die Frage(7)

Ihre Antwort auf die Frage