Was ist das Konzept von String Pool in Java?



Der String-Pool in Java ist ein Pool von Strings, die im Java-Heapspeicher gespeichert sind. Dieses Tutorial hilft Ihnen mit einem detaillierten Ansatz zum Java String Pool mit Beispielen.

Hast du von dem Begriff gehört? 'String Pool in Java?' Wenn nein, sind Sie am richtigen Ort gelandet. String Pool in Java ist ein Pool von Strings, der in gespeichert ist Heap-Speicher. Lassen Sie uns etwas tiefer gehen und dieses Konzept des Java-String-Pools im Detail verstehen.

Folgende Hinweise werden in diesem Artikel behandelt:





Lass uns anfangen!

Lassen Sie uns zunächst verstehen, wie genau ein String-Objekt erstellt wird!



wie man Swing Java benutzt

Wie erstelle ich einen String?

Es gibt zwei Möglichkeiten, ein String-Objekt in Java zu erstellen:

  • Verwenden des neuen Operators. Beispielsweise,
String s1 = neuer String ('Joey')
  • Verwenden eines String-Literal- oder Konstantenausdrucks. Beispielsweise,
String s1 = 'Joey' (String-Literal) oder String s1 = 'Joe' + 'y' (String-Konstantenausdruck)

Was ist nun dieser String-Pool, über den ich spreche, und wie hängt die Erstellung eines Strings in Java damit zusammen? Lassen Sie mich die Unordnung reduzieren!

Was ist ein String-Pool in Java?

Der String-Pool ist ein Speicherbereich im Java-Heap.



String-Zuordnung, wie alle Objektzuordnung , erweist sich sowohl in Bezug auf Zeit als auch in Bezug auf Erinnerung als kostspielige Angelegenheit. Die JVM führt einige Schritte aus, während Zeichenfolgenliterale initialisiert werden, um die Leistung zu erhöhen und den Speicheraufwand zu verringern. Um die Anzahl der in der JVM erstellten String-Objekte zu verringern, verwaltet die String-Klasse einen Pool von Strings.

Jedes Mal, wenn ein Zeichenfolgenliteral erstellt wird, wird das JVM Überprüft zuerst den String-Literal-Pool. Wenn die Zeichenfolge bereits im Zeichenfolgenpool vorhanden ist, wird ein Verweis auf die gepoolte Instanz zurückgegeben. Wenn die Zeichenfolge nicht im Pool vorhanden ist, wird ein neues Zeichenfolgenobjekt initialisiert und in den Pool eingefügt.

Nachdem ich das Konzept theoretisch gelernt habe, möchte ich Ihnen anhand einfacher Instanzen Schritt für Schritt erklären, wie ein String-Pool in Java funktioniert!

Wie funktioniert der String-Pool in Java?

Wenn Sie eine neue Zeichenfolge wie folgt erstellen:

String s1 = 'Rachel'

JVM prüft automatisch, ob derselbe Wert im String-Konstantenpool vorhanden ist oder nicht.

  • Wenn ja, belegt es den bereits vorhandenen Wert.
  • Wenn nein, wird eine neue Zeichenfolge selbst erstellt und dem Zeichenfolgenpool hinzugefügt.

Wenn Sie dieses Verhalten stoppen möchten, erstellen Sie eine Zeichenfolge mit dem neuen Operator:

String s1 = neuer String ('Rachel')

Nun, wenn Sie bereit sind, diese Zeichenfolge zum hinzuzufügen Java bietet Ihnen eine Methode namens intern (), mit der Sie die native intern () -Methode wie folgt aufrufen können:

S1.intern ()

Jetzt werde ich Ihnen anhand eines Beispiels die Implementierung und Funktionsweise des String-Pools zeigen.

Was macht ein Tableau-Entwickler?

Aber vorher eine kurze Erinnerung!

Wie Sie wissen, werden beim Vergleichen von 2 Objekten mit dem Operator == Adressen im Speicher verglichen.

Wir werden also die Zeichenfolgen mit == vergleichen, um sicherzugehen, dass es sich um dasselbe Objekt handelt oder nicht.

Kommen wir nun zu unserem Implementierungsprozess.

String Pool in Java: Flussdiagramm

String-Pool - Edureka

Lassen Sie uns nun Schritt für Schritt verstehen, was hier passiert:

  • Die Klasse wird geladen, wenn wird aufgerufen.
  • JVM sucht nach allen Zeichenfolgenliteralen im Programm
  • Zunächst wird die Variable s1 gefunden, die sich auf das Literal „Apple“ bezieht, und sie wird im Speicher erstellt
  • Eine Referenz für das Literal 'Apple' wird dann in den Speicher des String-Konstantenpools gestellt.
  • Dann findet es eine andere Variable s2, die sich auf dasselbe String-Literal „Mango“ bezieht.
  • Dann findet es eine andere Variable s3, die sich auf das Literal 'Apple' bezieht.
  • Nachdem JVM bereits ein Zeichenfolgenliteral 'Apple' gefunden hat, beziehen sich beide Variablen s1 und s3 auf dasselbe Objekt, d. H. 'Apple'.

Java-Programm für String Pool

öffentliche Klasse StringPoolExperiment {public static void main (String [] args) {String s1 = 'Rachel' String s2 = 'Rachel' String s3 = neuer String ('Rachel') String s4 = neuer String ('Rachel'). intern ( ) System.out.println (s1 == s2) // true System.out.println (s1 == s3) // false System.out.println (s1 == s4) // true}}

Ausgabe:

Wahr
Falsch
Wahr

Im obigen Beispiel können Sie die Verwendung der Zeichenfolgeninitialisierung auf alle drei Arten deutlich sehen, d. H.

String s1 = 'Rachel' String s2 = 'Rachel' String s3 = neuer String ('Rachel') String s4 = neuer String ('Rachel'). Intern ()

Die interne Arbeitsweise des Programms sollte jetzt vielleicht klar sein.

Damit habe ich gegen Ende meines Blogs erreicht. Ich hoffe, die hier ausgearbeiteten Inhalte haben Ihnen geholfen, Ihre Wissensbasis zu erweitern. Wir werden weiter in die Java-Welt eintauchen. Bleiben Sie dran!

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für Kernkonzepte als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & schulen Frühling .

Hast du eine Frage an uns? Bitte erwähnen Sie dies im Kommentarbereich dieses Blogs „String Pool in Java“. Wir werden uns so schnell wie möglich bei Ihnen melden.