Heim >Java >javaLernprogramm >Ganzzahl-Caching in Java
Java ist heute eine der am häufigsten verwendeten Programmiersprachen, da es erweiterte Features und Funktionen umfasst. In jeder neuen Java-Version fügen die Entwickler neue Features und Funktionen hinzu, und Integer-Caching ist eine Funktion, die in Java 5 eingeführt wurde. In diesem Tutorial werden wir verstehen, was Integer-Cache in Java ist und welche Bedeutung er für die Programmierung hat. p>
Aus dem Wort „Cache“ kann der Leser erraten, dass es sich um das Speichern einer Ganzzahl im Speicher und deren Wiederverwendung bei Bedarf handelt. Ja, Sie haben es erraten. Aber die Frage, die mir in den Sinn kommt, ist, warum wir einen Integer-Cache brauchen.
Lassen Sie uns anhand von Beispielcode verstehen, wie Integer-Caching funktioniert und warum wir es in Java benötigen.
Im folgenden Beispiel haben wir die erste und zweite Ganzzahlvariable definiert und sie auf 100 im Bereich von -128 bis 127 initialisiert. Anschließend vergleichen wir diese beiden Variablen und basieren auf dem Vergleichsergebnis.
Zusätzlich definieren wir die dritte und vierte Ganzzahlvariable und initialisieren sie mit 130 Werten, die nicht im Bereich -128 bis 127 liegen. Zusätzlich haben wir sie verglichen und die resultierenden Werte in der Ausgabe angezeigt.
import java.io.*; public class Main { public static void main(String[] args) { Integer first = 100; Integer second = 100; // It prints true only when both objects have the same reference if (first == second) { System.out.println("true"); } else { System.out.println("false"); } Integer third = 130; Integer fourth = 130; if (third == fourth) { System.out.println("true"); } else { System.out.println("false"); } } }
true false
Wenn wir die Ausgabe erraten, sollten beide eine „falsche“ Ausgabe zurückgeben, da der Operator „==“ verwendet wird, um Verweise auf Objekte abzugleichen. Der Operator „==“ gibt nur dann „true“ zurück, wenn zwei Objekte dieselbe Referenz haben. Wenn wir jedoch Objektwerte in Java vergleichen müssen, können wir die Methode equal() verwenden, aber nicht den Operator „==“, um Objektwerte abzugleichen.
Daher wurde klargestellt, dass „==“ „true“ zurückgibt, wenn zwei Objekte die gleiche Referenz haben, und „true“ für einen Vergleich von „ersten“ und „zweiten“ Objekten zurückgibt. Das bedeutet, dass das „erste“ und das „zweite“ Objekt die gleiche Referenz haben.
Das Problem besteht also darin, dass „erster“, „zweiter“, „dritter“ und „vierter“ alles ganzzahlige Objekte sind, aber nur beim Vergleich von „erster“ und „zweiter“ „true“ zurückgibt, nicht jedoch für „dritter“ und „vierter“. " Vergleich.
Das Konzept des Integer-Caching wird hier vorgestellt.
-128 bis 127 (einschließlich) sind die am häufigsten verwendeten Ganzzahlwerte. Wenn ein Programmierer also ein neues Integer-Objekt mit einem Wert im Bereich von -128 bis 127 erstellt, prüft die JVM zunächst, ob ein Objekt mit demselben Wert im Speicher vorhanden ist. Wenn ja, wird eine Referenz auf dasselbe Objekt zurückgegeben. Andernfalls wird ein neues Objekt erstellt und eine Referenz auf dieses Objekt zurückgegeben.
Jetzt ist dem Programmierer klar, warum der Vergleich von „ersten“ und „zweiten“ Objekten aufgrund des Cachings „true“ zurückgibt.
Aber wenn wir ein Objekt mit dem Schlüsselwort „new“ erstellen, wird immer ein neues Objekt im Speicher erstellt. Daher funktioniert das Integer-Caching in diesem Fall nicht.
Integer first = new Integer(13); Integer second = new Integer(13);
Im obigen Code liegt der Wert des Objekts zwischen -128 und 127. Wenn wir jedoch zwei Objekte vergleichen, während wir das Objekt mit dem Konstruktor erstellen, wird „false“ zurückgegeben.
Speicheroptimierung – Wenn das Objekt vorhanden ist, verwendet der Ganzzahl-Cache dasselbe Objekt, um Ganzzahlen zwischen -128 und 127 zu speichern, anstatt ein neues Objekt zu erstellen. Es schont den Speicher des Geräts.
Leistung – Die Objekterstellung erfordert Speicherzuweisung und Objektinitialisierung. Daher kann die Verwendung vorhandener Objekterstellung die Leistung Ihrer Anwendung verbessern.
Einfach ausgedrückt besteht die Ganzzahl-Cache-Funktion darin, die am häufigsten verwendeten Ganzzahl-Objekte zur Wiederverwendung im Speicher zwischenzuspeichern. Es verbessert die Speicheroptimierung und Leistung von Anwendungen durch die Verwendung vorhandener Objekte.
Das obige ist der detaillierte Inhalt vonGanzzahl-Caching in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!