String Java String ()

Metoda Java String intern () vrací kanonickou reprezentaci objektu řetězce.

Syntaxe řetězcové intern()metody je:

 string.intern()

Zde je řetězec objektem Stringtřídy.

intern () parametry

intern()Metoda nebere žádné parametry.

intern () návratová hodnota

  • vrací kanonickou reprezentaci řetězce

Co je to Java String Interning?

String interning zajišťuje, že všechny řetězce se stejným obsahem používají stejnou paměť.

Předpokládejme, že jsme tyto dva řetězce:

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

Vzhledem k tomu, jak str1a str2mají stejný obsah, budou oba tyto řetězce mají stejnou paměť. Java automaticky internuje řetězcové literály.

Pokud však vytvoříte řetězce pomocí newklíčového slova, tyto řetězce nebudou sdílet stejnou paměť. Například,

 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 vidíte z tohoto příkladu, str1 i str2 mají stejný obsah. Nejsou si však rovni, protože nesdílejí stejnou paměť.

V tomto případě můžete intern()metodu použít ručně, aby se pro řetězce se stejným obsahem používala stejná paměť.

Příklad: 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 vidíte, str1 i str2 mají stejný obsah, ale zpočátku se nerovnají.

Potom použijeme intern()metodu tak, aby str1 a str2 používaly stejný fond paměti. Poté, co použijeme intern(), str1 a str2 jsou stejné.

Zajímavé články...