Heim >Java >javaLernprogramm >Was sind die Unterschiede zwischen Java Integer und Int?

Was sind die Unterschiede zwischen Java Integer und Int?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-12-27 11:42:582803Durchsuche

Was sind die Unterschiede zwischen Java Integer und Int?

Grundlagen:

1. Int ist ein grundlegender Datentyp von Java und Integer ist ein Typ von int Kapselungsklasse.

2. Ganzzahlige Variablen müssen instanziiert werden, bevor sie verwendet werden können, int-Variablen jedoch nicht.

3. Integer ist eigentlich ein Verweis auf ein Objekt. Bei einem neuen Integer-Objekt wird tatsächlich ein Zeiger generiert, der auf das Objekt zeigt.

4. Der Standardwert von Integer ist null und der Standardwert von int ist 0.

Erweiterung:

1 Da die Integer-Variable tatsächlich eine Referenz auf das Integer-Objekt ist, sind die beiden durch new übergebenen Integer-Variablen niemals gleich (weil dies bei neuen Generierungen der Fall ist). zwei Objekte mit unterschiedlichen Speicheradressen).

Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.print(i == j);//false

2. Wenn eine Integer-Variable mit einer Int-Variablen verglichen wird, ist das Ergebnis wahr, solange die Werte der beiden Variablen gleich sind, da Integer im Wesentlichen eine Wrapper-Klasse von Int ist Zwei Zahlen werden verglichen, java Die Ganzzahl wird automatisch entpackt, es handelt sich also im Wesentlichen um einen Vergleich zweier int-Variablen.

Integer i = new Integer(100);
int j = 100;
System.out.print(i == j);//true

3. Wenn eine von new erstellte Integer-Variable mit einer nicht von new erstellten Integer-Variable verglichen wird, ist das Ergebnis falsch. Da Variablen, die ohne „new“ erstellt wurden, im Java-Konstantenpool vorhanden sind und mit „new“ erstellte Variablen auf neu erstellte Objekte im Heap verweisen, sind die Speicheradressen der beiden unterschiedlich.

Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j);//false

4. Wenn beim Vergleich zweier nicht neuer Ganzzahlvariablen die Werte der beiden Variablen zwischen -128 und 127 liegen, ist das Ergebnis wahr, andernfalls ist es falsch.

Für dieses seltsame Ergebnis lautet die Erklärung von Java wie folgt:

Integer i = new Integer(100);//在编译时会变成Integer i = Integer.ValueOf(100)

Und die Definition von Integer.valueOf() in der Java-API lautet wie folgt:

public static Integer valueOf(int i){
    assert IntegerCache.high >= 127;
    if (i >= IntegerCache.low && i <= IntegerCache.high){
        return IntegerCache.cache[i + (-IntegerCache.low)];
    }
    return new Integer(i);
}

Das heißt Für Java wird die Zahl zwischen -128 und 127 zwischengespeichert. Wenn Sie das nächste Mal einer Integer-Variablen einen Wert zwischen -128 und 127 zuweisen und zwischengespeichert wurden, wird sie direkt aus dem Cache aufgerufen.

Die chinesische PHP-Website bietet eine große Anzahl kostenloser JAVA-Einführungs-Tutorials, die jeder gerne lernen kann!

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen Java Integer und Int?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn