Heim >Java >javaLernprogramm >Der Unterschied zwischen int und Integer

Der Unterschied zwischen int und Integer

angryTom
angryTomOriginal
2020-02-17 13:49:4131218Durchsuche

Der Unterschied zwischen int und Integer

Der Unterschied zwischen int und Integer

1. Integer ist eine Wrapper-Klasse von int und int ist ein grundlegender Datentyp von Java

2. Integer-Variablen müssen instanziiert werden, während Integer-Variablen tatsächlich eine Referenz auf ein Objekt sind wird tatsächlich generiert und zeigt auf dieses Objekt.

4 Der Standardwert von Integer ist 0

Empfohlenes Lernen:

Java-Tutorial

Erweiterung:

Vergleich von Integer und int

1. Da die Integer-Variable tatsächlich eine Referenz auf ist Bei einem Integer-Objekt werden die beiden durch neue generiert. Integer-Variablen sind immer ungleich (da new zwei Objekte mit unterschiedlichen Speicheradressen generiert).

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

2. Beim Vergleich von Integer-Variablen mit Integer-Variablen ist das Ergebnis wahr, solange die Werte der beiden Variablen gleich sind (denn wenn die Verpackungsklasse Integer mit den Basisdaten verglichen wird). Geben Sie int ein, Java entpackt es automatisch als int, und dann wird der Vergleich tatsächlich zu einem Vergleich zweier int-Variablen)

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

3. Wenn die von non-new generierte Integer-Variable mit der von new Integer generierten Variablen verglichen wird (), das Ergebnis ist falsch. (Da die von non-new generierte Integer-Variable auf das Objekt im Java-Konstantenpool zeigt und die von new Integer () generierte Variable auf das neu erstellte Objekt im Heap zeigt, sind die Adressen im Speicher der beiden unterschiedlich.)

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

4 . Wenn die Werte der beiden Variablen beim Vergleich zwischen -128 und 127 liegen, ist das Vergleichsergebnis wahr Befinden sich zwei Variablen nicht in diesem Bereich, ist das Vergleichsergebnis falsch

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

Aus dem Grund für Punkt 4:

Wenn Java Integer i = 100; kompiliert, wird es in Integer i = Integer.valueOf übersetzt (100); und der Integer-Typ in der Java-API. Die Definition von valueOf 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);
}

Java speichert Zahlen zwischen -128 und 127. Wenn Integer i = 127, ist 127 zwischengespeichert und die Ganzzahl j = 127 wird beim nächsten Mal direkt aus dem Cache abgerufen und ist nicht neu.

Weitere

Programmierlernkurse

erhalten Sie Folgen Sie der chinesischen PHP-Website! 

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen int und Integer. 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