English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java-Grundlagen-Tutorial

Java Flusskontrolle

Java Array

Java objektorientiert (I)

Java objektorientiert (II)

Java objektorientiert (III)

Java-Exzeptionenbehandlung

Java Liste (List)

Java Queue (Warteschlange)

Java Map Sammlung

Java Set Sammlung

Java Ein- und Ausgabe(I/O)

Java Reader/Writer

Java andere Themen

Java String intern() Methodenverwendung und Beispiel

Java String (Zeichenkette) Methoden

Der Java String intern() Methoden gibt die normative Darstellung des String-Objekts zurück.

Die Syntax des String-intern() Methods ist:

string.intern()

Hierbei ist string ein Objekt der Klasse String.

intern() Parameter

  • Ohne jegliche Parameter

intern() Rückgabewert

  • Gibt die normative Darstellung der Zeichenkette zurück

Was ist Java String Interning?

String-Embedding stellt sicher, dass alle Strings mit demselben Inhalt denselben Speicherbereich teilen.

Angenommen, wir haben zwei Strings:

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

Da beide str1und str2Mit demselben Inhalt, daher werden diese beiden Strings den gleichen Speicherbereich teilen. Java fügt automatisch String-Literal ein.

Allerdings werden diese Strings nicht die gleiche Speicherbereiche teilen, wenn sie mit dem Schlüsselwort new erstellt werden. Zum Beispiel,

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

Von diesem Beispiel ist erkennbar, dass beide str1und str2haben denselben Inhalt. Aber sie sind nicht gleich, weil sie denselben Speicher nicht teilen.

In diesem Fall können Sie den intern() Methodenaufruf manuell verwenden, um denselben Speicher für Zeichenketten mit gleicher Inhalt zu verwenden.

Beispiel: Java String intern()

class Main {
  public static void main(String[] args) {
    String str1 = new String("xyz");
    String str2 = new String("xyz");
    //str1und str2teilen nicht denselben Speicherpool
    System.out.println(str1 == str2); // false
    //verwendet den intern() Methodenaufruf
    //Jetzt, str1und str2teilen denselben Speicherpool
    str1 = str1.intern();
    str2 = str2.intern();
    System.out.println(str1 == str2); // true
  }
}

Wie Sie sehen können, str1und str2dieselben Inhalte haben, aber sie waren nicht ursprünglich gleich.

verwenden wir den intern() Methodenaufruf, um str1und str2verwendet denselben Speicherpool. Nach dem Aufruf von intern(), str1und str2gleich.

Java String (Zeichenkette) Methoden