Heim  >  Artikel  >  Java  >  Java-Tutorial – Der Unterschied zwischen Int und Integer

Java-Tutorial – Der Unterschied zwischen Int und Integer

高洛峰
高洛峰Original
2016-12-02 16:22:391911Durchsuche

Lassen Sie uns zunächst über den Unterschied zwischen int und Integer sprechen:

int ist der grundlegende Datentyp und Integer ist die Wrapper-Klasse von int. Hinweis: Letzteres hat den Typ „Klasse“. Beispielsweise hat Listc0f559cc8d56b43654fcbe4aa9df7b4a bei Verwendung von Generika den Anfangswert 0 und die Ganzzahl ist null.

Sehen Sie sich das konkrete Beispiel unten an:

package syswar.cc;

public class IntegerCompare {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Integer a1 = 2;
        Integer a2 = 2;

        Integer b1 = 150;
        Integer b2 = 150;

        Integer c1 = new Integer(2);
        Integer c2 = new Integer(2);

        Integer d1 = new Integer(150);
        Integer d2 = new Integer(150);

        System.out.println("a1==a2?" + (a1==a2));
        System.out.println("b1==b2?" + (b1==b2));
        System.out.println("c1==c2?" + (c1==c2));
        System.out.println("d1==d2?" + (d1==d2));
    }

}

Laufendes Ergebnis:

Warum ist dieses Ergebnis? Vergleichen wir zunächst die beiden Gruppen a und b. Bei der Initialisierung werden die Integer-Objektdaten zwischengespeichert. Die diesen Integer-Objekten entsprechenden int-Werte liegen im Bytebereich, also [-128,127].
a1==a2?true
b1==b2?false
c1==c2?false
d1==d2?false>

Wenn Sie Integer einen int-Wert direkt zuweisen und der Wertebereich [-128.127] beträgt, ruft Integer das Integer-Objekt direkt aus dem Cache ab. Wenn der direkt zugewiesene int-Wert daher in [-128.127] liegt, das Integer-Objekt für dasselbe Objekt.

Das durch die neue Methode erhaltene Integer-Objekt ist ein Objekt, das direkt aus dem Heap zugewiesen wird. Daher ist das Ergebnis der ==-Beurteilung falsch

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