Heim > Java > javaLernprogramm > Hauptteil

Warum verhalten sich ganzzahlige Werte außerhalb des Bereichs -128 bis 127 im Konstantenpool von Java anders?

Barbara Streisand
Freigeben: 2024-11-07 04:16:03
Original
400 Leute haben es durchsucht

Why Do Integer Values Outside the Range -128 to 127 Behave Differently in Java's Constant Pool?

Warum sich das Verhalten des Integer-Konstantenpools nach 127 unterscheidet

Der Konstantenpool für Zahlen in Java unterscheidet sich von dem für Strings. Während für Zeichenfolgen nur Konstanten zur Kompilierungszeit interniert werden, bezieht jede Boxoperation den Pool für Wrapper-Typen von Ganzzahlen mit ein.

Zum Beispiel:

int x = 10;
int y = x + 1;
Integer z = y; // Not a compile-time constant
Integer constant = 11;
System.out.println(z == constant); // true
Nach dem Login kopieren

Das JLS garantiert einen kleinen Bereich gepoolter Werte , wobei Implementierungen die Möglichkeit haben, einen größeren Bereich zu verwenden.

In der Praxis verwenden die meisten Implementierungen Integer.valueOf für Boxing-Operationen, was zu folgendem Verhalten führt:

Integer x = Integer.valueOf(100);
Integer y = Integer.valueOf(100);
System.out.println(x == y); // true
Nach dem Login kopieren

Laut JLS-Abschnitt 5.1.7:

Werte zwischen -128 und 127 ergeben beim Boxen immer identische Referenzen. Dies ist ein praktischer Kompromiss, der sicherstellt, dass gemeinsame Werte immer nicht unterscheidbar sind.

Allerdings ändert sich das Verhalten für Werte außerhalb dieses Bereichs. Aus Effizienzgründen gehen Implementierungen möglicherweise nicht von gemeinsamen Referenzen für diese Werte aus.

Dies gewährleistet in den meisten Situationen das gewünschte Verhalten, ohne die Leistung wesentlich zu beeinträchtigen. Implementierungen mit begrenztem Speicher können das Caching erweitern, um einen größeren Bereich von Werten abzudecken.

Das obige ist der detaillierte Inhalt vonWarum verhalten sich ganzzahlige Werte außerhalb des Bereichs -128 bis 127 im Konstantenpool von Java anders?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!