Java String intern ()

Die Java String intern () -Methode gibt eine kanonische Darstellung des String-Objekts zurück.

Die Syntax der String- intern()Methode lautet:

 string.intern()

Hier ist string ein Objekt der StringKlasse.

intern () Parameter

Die intern()Methode akzeptiert keine Parameter.

intern () Rückgabewert

  • Gibt eine kanonische Darstellung der Zeichenfolge zurück

Was ist Java String Interning?

Durch das Internieren von Zeichenfolgen wird sichergestellt, dass alle Zeichenfolgen mit demselben Inhalt denselben Speicher verwenden.

Nehmen wir an, wir haben diese beiden Zeichenfolgen:

 String str1 = "xyz"; String str2 = "xyz";

Da beide str1und str2den gleichen Inhalt haben, werden diese beiden Strings den gleichen Speicher teilen. Java interniert die String-Literale automatisch.

Wenn Sie jedoch Zeichenfolgen mit dem newSchlüsselwort erstellen , verwenden diese Zeichenfolgen nicht denselben Speicher. Beispielsweise,

 class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false ) )

Wie Sie in diesem Beispiel sehen können, haben sowohl str1 als auch str2 den gleichen Inhalt. Sie sind jedoch nicht gleich, da sie nicht denselben Speicher verwenden.

In diesem Fall können Sie die intern()Methode manuell verwenden , sodass für Zeichenfolgen mit demselben Inhalt derselbe Speicher verwendet wird.

Beispiel: Java String intern ()

 class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); // str1 and str2 doesn't share the same memory pool System.out.println(str1 == str2); // false // using the intern() method // now both str1 and str2 share the same memory pool str1 = str1.intern(); str2 = str2.intern(); System.out.println(str1 == str2); // true ) )

Wie Sie sehen können, haben sowohl str1 als auch str2 den gleichen Inhalt, sind jedoch anfangs nicht gleich.

Wir verwenden dann die intern()Methode, so dass str1 und str2 denselben Speicherpool verwenden. Nach der Verwendung intern()sind str1 und str2 gleich.

Interessante Beiträge...