Java String intern ()

Метод Java String intern () повертає канонічне представлення рядкового об'єкта.

Синтаксис рядкового intern()методу:

 string.intern()

Тут рядок є об’єктом Stringкласу.

intern () Параметри

intern()Метод не приймає ніяких параметрів.

intern () Повернене значення

  • повертає канонічне представлення рядка

Що таке Java String Interning?

Інтернізація рядків гарантує, що всі рядки, що мають однаковий вміст, використовують однакову пам’ять.

Припустимо, ми використовуємо ці два рядки:

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

Оскільки обидва str1та str2мають однаковий вміст, обидва ці рядки матимуть спільну пам'ять. Java автоматично інтернує рядкові літерали.

Однак, якщо ви створюєте рядки з використанням newключового слова, ці рядки не матимуть спільної пам'яті. Наприклад,

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

Як видно з цього прикладу, і str1, і str2 мають однаковий вміст. Однак вони не рівні, оскільки не мають однакову пам’ять.

У цьому випадку ви можете використовувати intern()метод вручну, щоб однакова пам’ять використовувалася для рядків з однаковим вмістом.

Приклад: 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 ) )

Як бачите, і str1, і str2 мають однаковий вміст, але спочатку вони не рівні.

Потім ми використовуємо intern()метод, щоб str1 і str2 використовували один і той же пул пам'яті. Після використання intern()str1 і str2 рівні.

Цікаві статті...