Heim > Java > javaLernprogramm > Warum bevorzugen Java-Programmierer trotz der Existenz von Wrapper-Klassen primitive Typen?

Warum bevorzugen Java-Programmierer trotz der Existenz von Wrapper-Klassen primitive Typen?

DDD
Freigeben: 2024-11-25 13:15:12
Original
490 Leute haben es durchsucht

Why Do Java Programmers Favor Primitive Types Despite the Existence of Wrapper Classes?

Warum verwenden Programmierer immer noch primitive Typen in Java?

Trotz der Einführung von Boxing und Unboxing in Java 5 nutzen viele Entwickler weiterhin primitive Typen primitive Typen wie int über ihre Objektgegenstücke wie java.lang.Integer. Diese Praxis wirft die Frage auf, warum dies geschieht, angesichts der zusätzlichen Bequemlichkeit, die Objekttypen bieten.

Wie in Joshua Blochs „Effective Java“ (Punkt 5: „Vermeiden Sie die Erstellung unnötiger Objekte“) beschrieben, ist die Verwendung von Grundelementen kann zu erheblichen Leistungsvorteilen führen. In seinem Codebeispiel dauert das Summieren von Long-Werten mithilfe eines Long-Objekts 43 Sekunden, während die Verwendung von Grundelementen den Vorgang auf 6,8 Sekunden beschleunigt.

Ein weiterer Faktor, der zur Verwendung von Grundelementen beiträgt, ist das Fehlen einer nativen Wertegleichheit in Objekttypen. Um die Gleichheit zu bestimmen, muss die ausführliche Methode equal() verwendet werden, im Gegensatz zum effizienten ==-Operator, der für Grundelemente verfügbar ist.

Beachten Sie den folgenden Codeausschnitt:

class Biziclop {

    public static void main(String[] args) {
        System.out.println(new Integer(5) == new Integer(5)); // false
        System.out.println(new Integer(500) == new Integer(500)); // false

        System.out.println(Integer.valueOf(5) == Integer.valueOf(5)); // true
        System.out.println(Integer.valueOf(500) == Integer.valueOf(500)); // false
    }
}
Nach dem Login kopieren

Die Ausgabe zeigt die Inkonsistenz in der Wertgleichheit zwischen new Integer() und Integer.valueOf(). Während die Java Language Specification (JLS) einen Cache mit mindestens 256 ganzzahligen Fliegengewichten ([-128; 127]) erfordert, können JVM-Implementierer diesen Bereich erweitern. Dies bedeutet, dass bestimmte Werte auf einigen Systemen zwischengespeichert werden können, auf anderen jedoch nicht, was zu unerwartetem Verhalten führt.

Das obige ist der detaillierte Inhalt vonWarum bevorzugen Java-Programmierer trotz der Existenz von Wrapper-Klassen primitive Typen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage