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

教程基础Java

Controllo di流程 Java

Array Java

Java orientato agli oggetti (I)

Java orientato agli oggetti (II)

Java orientato agli oggetti (III)

Gestione delle eccezioni Java

List Java

Queue (coda) Java

Map di Java

Set di Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Uso e esempio del metodo Java String intern()

Metodi Java String (stringa)

Il metodo intern() della stringa Java restituisce la rappresentazione standard dell'oggetto stringa.

La sintassi del metodo intern() della stringa è:

string.intern()

In questo caso, string è un oggetto della classe String.

Parametro di intern()

  • Senza alcun parametro

Valore di ritorno di intern()

  • Restituisce la rappresentazione standard della stringa

Cos'è l'Interning di Stringa Java?

L'embedding delle stringhe garantisce che tutte le stringhe con lo stesso contenuto utilizzino la stessa memoria.

Supponiamo di avere due stringhe:

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

Poiché entrambe le str1 e str2 hanno lo stesso contenuto, queste due stringhe condivideranno la stessa memoria. Java inserisce automaticamente le stringhe letterali.

Ma se si crea una stringa utilizzando il prefisso new, queste stringhe non condivideranno la stessa memoria. Ad esempio,

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

Da questo esempio si può vedere che entrambe le str1 e str2 hanno lo stesso contenuto. Tuttavia, non sono uguali perché non condividono la stessa memoria.

In questo caso, puoi utilizzare manualmente il metodo intern() per utilizzare la stessa memoria per le stringhe con lo stesso contenuto.

Esempio: Java String intern()

class Main {
  public static void main(String[] args) {
    String str1 = new String("xyz");
    String str2 = new String("xyz");
    //str1 e str2 non condividono lo stesso pool di memoria
    System.out.println(str1 == str2); // false
    //Utilizzando il metodo intern()
    //Ora, str1 e str2 condividono lo stesso pool di memoria
    str1 = str1.intern();
    str2 = str2.intern();
    System.out.println(str1 == str2); // true
  {}
{}

Come puoi vedere, str1 e str2 hanno lo stesso contenuto, ma non erano uguali all'inizio.

Poi, utilizziamo il metodo intern() in modo che str1 e str2 utilizzino lo stesso pool di memoria. Dopo l'uso di intern(), str1 e str2 sono uguali.

Metodi Java String (stringa)