Метод Java String intern () возвращает каноническое представление строкового объекта.
Синтаксис строкового intern()
метода:
string.intern()
Здесь строка - это объект String
класса.
intern () Параметры
intern()
Метод не принимает никаких параметров.
intern () Возвращаемое значение
- возвращает каноническое представление строки
Что такое интернирование строк в Java?
Интернирование строк гарантирует, что все строки с одинаковым содержимым используют одну и ту же память.
Допустим, у нас есть эти две строки:
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 равны.