


Warum bevorzugen Java-Programmierer trotz der Existenz von Wrapper-Klassen primitive Typen?
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 } }
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.