logo

Java String intern()

Der Java-String-Klasse Praktikant() Die Methode gibt die interne Zeichenfolge zurück. Es gibt die kanonische Darstellung eines Strings zurück.

Zufallszahlen-C-Code

Es kann verwendet werden, um eine Zeichenfolge aus dem Speicher zurückzugeben, wenn sie durch ein neues Schlüsselwort erstellt wurde. Es erstellt eine exakte Kopie des Heap-String-Objekts im String-Konstanten-Pool.

Unterschrift

Die Signatur der intern()-Methode ist unten angegeben:

 public String intern() 

Kehrt zurück

internierter String

Die Notwendigkeit und Funktionsweise der String.intern()-Methode

Wenn eine Zeichenfolge in Java erstellt wird, belegt sie Speicher im Heap. Außerdem wissen wir, dass die String-Klasse unveränderlich ist. Daher wird immer dann, wenn wir eine Zeichenfolge mit dem Schlüsselwort new erstellen, neuer Speicher im Heap für die entsprechende Zeichenfolge zugewiesen, unabhängig vom Inhalt des Arrays. Betrachten Sie den folgenden Codeausschnitt.

 String str = new String('Welcome to JavaTpoint.'); String str1 = new String('Welcome to JavaTpoint'); System.out.println(str1 == str); // prints false 

Die println-Anweisung gibt „false“ aus, da für jedes Zeichenfolgenliteral separater Speicher zugewiesen wird. Somit werden zwei neue String-Objekte im Speicher erstellt, nämlich str und str1. das unterschiedliche Bezüge enthält.

sonst wenn bash

Wir wissen, dass das Erstellen eines Objekts in Java ein kostspieliger Vorgang ist. Um Zeit zu sparen, haben Java-Entwickler daher das Konzept des String Constant Pool (SCP) entwickelt. Der SCP ist ein Bereich innerhalb des Heap-Speichers. Es enthält die eindeutigen Zeichenfolgen. Um die Strings in den String-Pool einzufügen, muss man den aufrufen Praktikant() Methode. Bevor ein Objekt im String-Pool erstellt wird, prüft die JVM, ob der String bereits im Pool vorhanden ist oder nicht. Wenn die Zeichenfolge vorhanden ist, wird ihre Referenz zurückgegeben.

 String str = new String('Welcome to JavaTpoint').intern(); // statement - 1 String str1 = new String('Welcome to JavaTpoint').intern(); // statement - 2 System.out.println(str1 == str); // prints true 

Im obigen Codeausschnitt wird die Methode intern() für die String-Objekte aufgerufen. Daher wird der Speicher im SCP zugewiesen. Für die zweite Anweisung wird kein neues String-Objekt erstellt, da der Inhalt von str und str1 gleich ist. Daher wird für str1 die Referenz des in der ersten Anweisung erstellten Objekts zurückgegeben. Somit verweisen str und str1 beide auf denselben Speicher. Daher gibt die print-Anweisung true aus.

Beispiel für eine Java-String-intern()-Methode

Dateiname: InternExample.java

 public class InternExample{ public static void main(String args[]){ String s1=new String('hello'); String s2='hello'; String s3=s1.intern();//returns string from pool, now it will be same as s2 System.out.println(s1==s2);//false because reference variables are pointing to different instance System.out.println(s2==s3);//true because reference variables are pointing to same instance }} 
Testen Sie es jetzt

Ausgabe:

CSS ändert die Bildgröße
 false true 

Beispiel 2 der Java String intern()-Methode

Sehen wir uns ein weiteres Beispiel an, um das String-Intern-Konzept zu verstehen.

Dateiname: InternExample2.java

 public class InternExample2 { public static void main(String[] args) { String s1 = 'Javatpoint'; String s2 = s1.intern(); String s3 = new String('Javatpoint'); String s4 = s3.intern(); System.out.println(s1==s2); // True System.out.println(s1==s3); // False System.out.println(s1==s4); // True System.out.println(s2==s3); // False System.out.println(s2==s4); // True System.out.println(s3==s4); // False } } 
Testen Sie es jetzt

Ausgabe:

 true false true false true false 

Punkte, die man sich merken sollte

Im Folgenden sind einige wichtige Punkte aufgeführt, die Sie in Bezug auf die intern()-Methode beachten sollten:

1) Ein String-Literal ruft immer die intern()-Methode auf, unabhängig davon, ob die intern()-Methode zusammen mit dem String-Literal erwähnt wird oder nicht. Zum Beispiel,

 String s = 'd'.intern(); String p = 'd'; // compiler treats it as String p = 'd'.intern(); System.out.println(s == p); // prints true 

2) Immer wenn wir ein String-Objekt mit erstellen neu Schlüsselwort werden zwei Objekte erstellt. Zum Beispiel,

primitive Datentypen in Java
 String str = new ('Hello World'); 

Hier wird aufgrund der Verwendung des neuen Schlüsselworts ein Objekt im Heap-Speicher außerhalb des SCP erstellt. Da wir auch das String-Literal haben („Hello World“); Daher wird ein Objekt innerhalb des SCP erstellt, sofern das Literal „Hello World“ nicht bereits im SCP vorhanden ist.