Метод 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 рівні.