Sobes.tech
Intern
85
questionbank

Что такое строка в Java?

Ответ от нейросети

sobes.tech AI

Строка в Java — это последовательность символов. Она представлена классом String.

Ключевые особенности:

  • Неизменяемость (Immutable): После создания объекта String, его содержимое не может быть изменено. Любая операция, которая, казалось бы, изменяет строку (например, конкатенация), фактически создает новый объект String.
  • String Pool: Java использует String Pool (пул строк) для эффективного управления строковыми литералами. Когда создается строковый литерал (например, "hello"), JVM сначала ищет его в пуле. Если он уже существует, возвращается ссылка на существующий объект. Если нет, создается новый объект в пуле и возвращается ссылка на него.
  • Создание:
    • С использованием строкового литерала: String s1 = "hello"; (использует String Pool).
    • С использованием оператора new: String s2 = new String("world"); (создает новый объект в куче, даже если "world" уже есть в пуле).
  • Сравнение: Для сравнения содержимого строк следует использовать метод equals(), а не оператор ==. Оператор == сравнивает ссылки на объекты.

Пример:

// Создание строки с использованием литерала (из пула)
String s1 = "Java";

// Создание строки с использованием new (новый объект в куче)
String s2 = new String("Java");

// Сравнение содержимого (правильно)
boolean contentEquals = s1.equals(s2); // true

// Сравнение ссылок (неправильно для сравнения содержимого)
boolean referenceEquals = (s1 == s2); // false

System.out.println("Содержимое одинаково: " + contentEquals);
System.out.println("Ссылки одинаковы: " + referenceEquals);