Vergleichen Sie nicht-primitive Long-Werte 127 und 128

Möchte ich zum vergleichen von zwei Lange Objekten Werte mit if Bedingungen. Wenn diese Werte weniger als 128die if Zustand funktioniert einwandfrei, aber wenn Sie sind größer als oder gleich 128Vergleich fehlschlägt.

Beispiel:

Long num1 = 127;
Long num2 = 127;

if (num1 == num2) {
    //Works ok
}

Vergleich auf der code oben funktioniert, aber nicht in den folgenden code:

Long num1 = 128;
Long num2 = 128;

if (num1 == num2) {
    //Does NOT work
}

Warum ist es ein problem, im Vergleich Lange Variablen mit Werten die größer als 127? Wenn die Variablen, Datentypen geändert werden lange primitivedann die Vergleiche funktionieren, die für alle Fälle.

InformationsquelleAutor der Frage Viraj Dhamal | 2013-12-12

Schreibe einen Kommentar