Ganzzahl-Caching in Java
Abfrage:
Warum wird in Java der Vergleich c == d als wahr ausgewertet? obwohl es sich um unterschiedliche Integer-Objekte handelt (c = 100 und d = 100)?
Antwort:
Um die Leistung und Speichernutzung zu verbessern, verwendet Java einen Cache für ganzzahlige Objekte im Bereich von -128 bis 127. Folglich sind c und d verweisen auf dieselbe zwischengespeicherte Instanz.
Zweck der Optimierung:
-
Speichereinsparung: Durch das Zwischenspeichern allgemeiner ganzzahliger Werte spart Java erheblich Speicherplatz im Vergleich zur Erstellung separater Objekte für jeden einzelnen Wert.
- Cache-Effizienz: Das Zwischenspeichern häufig verwendeter Ganzzahlwerte verbessert die Cache-Leistung durch Minimierung des Caches Fehler.
Vorteile:
-
Verbesserte Leistung: Reduzierter Speicherverbrauch und verbesserte Cache-Effizienz führen zu einer schnelleren Codeausführung.
-
Optimierte Speichernutzung: Durch das Zwischenspeichern von Ganzzahlen wird wertvoller Speicher frei Ressourcen für andere Anwendungen.
Forschung
Die folgenden Referenzen geben weitere Einblicke in dieses Thema:
- [Java Platform SE 8 Sprache Spezifikation](https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.7)
- [Autoboxing-Tutorial](https:// docs.oracle.com/javase/tutorial/java/data/autoboxing.html)
Das obige ist der detaillierte Inhalt vonWarum gibt „c == d' in Java „true' für „Integer c = 100' und „Integer d = 100' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!