English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
Senza alcun parametro
Restituisce la rappresentazione standard della stringa
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.
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.