O método Java String intern () retorna uma representação canônica do objeto string.
A sintaxe do intern()
método string é:
string.intern()
Aqui, string é um objeto da String
classe.
Parâmetros intern ()
O intern()
método não leva nenhum parâmetro.
Intern () Valor de Retorno
- retorna uma representação canônica da string
O que é Java String Interning?
O internamento de String garante que todas as strings com o mesmo conteúdo usem a mesma memória.
Suponha que nós essas duas strings:
String str1 = "xyz"; String str2 = "xyz";
Uma vez que str1
e str2
têm o mesmo conteúdo, ambas as strings compartilharão a mesma memória. Java internaliza automaticamente os literais de string.
No entanto, se você criar strings usando a new
palavra - chave, essas strings não compartilharão a mesma memória. Por exemplo,
class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false ) )
Como você pode ver neste exemplo, str1 e str2 têm o mesmo conteúdo. No entanto, eles não são iguais porque não compartilham a mesma memória.
Neste caso, você pode usar manualmente o intern()
método para que a mesma memória seja usada para strings com o mesmo conteúdo.
Exemplo: 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 ) )
Como você pode ver, str1 e str2 têm o mesmo conteúdo, mas inicialmente não são iguais.
Em seguida, usamos o intern()
método para que str1 e str2 usem o mesmo pool de memória. Depois de usarmos intern()
, str1 e str2 são iguais.