Stażysta Java String ()

Metoda Java String intern () zwraca kanoniczną reprezentację obiektu ciągu.

Składnia intern()metody łańcuchowej jest następująca:

 string.intern()

Tutaj string jest obiektem Stringklasy.

intern () Parametry

intern()Metoda nie ma żadnych parametrów.

intern () Wartość zwracana

  • zwraca kanoniczną reprezentację ciągu

Co to jest internalizacja ciągów Java?

Internowanie String zapewnia, że ​​wszystkie ciągi o tej samej zawartości używają tej samej pamięci.

Załóżmy, że mamy te dwa ciągi:

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

Ponieważ oba str1i str2mają tę samą zawartość, oba te ciągi będą miały tę samą pamięć. Java automatycznie internalizuje literały ciągów.

Jeśli jednak utworzysz ciągi przy użyciu newsłowa kluczowego, nie będą one dzielić tej samej pamięci. Na przykład,

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

Jak widać na tym przykładzie, zarówno str1, jak i str2 mają tę samą zawartość. Jednak nie są równe, ponieważ nie mają tej samej pamięci.

W takim przypadku możesz ręcznie użyć intern()metody, aby ta sama pamięć była używana dla ciągów o tej samej zawartości.

Przykład: 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 ) )

Jak widać, zarówno str1, jak i str2 mają tę samą zawartość, ale początkowo nie są równe.

Następnie używamy intern()metody, aby str1 i str2 używały tej samej puli pamięci. Po użyciu intern()str1 i str2 są równe.

Interesujące artykuły...