English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Списки (List)

Java Queue (очередь)

Java Map-сборники

Java Set-сборники

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Метод Java String intern() и примеры использования

Java методы String (строки)

Метод Java String intern() возвращает нормальное представление строки объекта.

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

string.intern()

Здесь string является объектом класса String.

Параметры 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 и str2 не делят один и тот же пул памяти
    System.out.println(str1 == str2); // false
    //Использование метода intern()
    //Теперь, str1 и str2 делят один и тот же пул памяти
    str1 = str1.intern();
    str2 = str2.intern();
    System.out.println(str1 == str2); // true
  {}
{}

Как вы видите, str1 и str2 имеют одинаковое содержимое, но они не были равны с начала.

Затем мы используем метод intern(), чтобы str1 и str2 использовали один и тот же пул памяти. После использования intern() str1 и str2 равны.

Java методы String (строки)