Спросят с вероятностью 12%
Строка представляет собой последовательность символов и является объектом класса
String. Они неизменяемы (immutable), что означает, что однажды созданный объект String не может быть изменён. Если вам нужно изменить строку, на самом деле создаётся новый объект String с изменённым содержимым.Основные особенности строк:
✅Неизменяемость: Как только она создана, её содержимое не может быть изменено. Любые операции, кажущиеся изменяющими строку, на самом деле создают новый объект
String.✅String Pool: Для экономии памяти использует механизм "пула строк" (String Pool). Это специальная область в куче (Heap), где хранятся все уникальные литералы строк, используемые в программе. Если строка уже существует в пуле, Java использует ту же ссылку, вместо создания нового объекта
String.✅Кодировка: Строки в Java кодируются в UTF-16, где каждый символ (в основном) занимает 2 байта.
Создание строк:
Их можно создавать разными способами, например:
String s1 = "Hello"; // Создание строки через литерал - строка помещается в пул строк
String s2 = new String("Hello"); // Явное создание нового объекта строки - не использует пул строк
Работа со строками:
Класс
String предоставляет множество методов для работы со строками, включая поиск подстроки, сравнение строк, преобразование регистра, конкатенацию (слияние строк) и многое другое. Примеры некоторых операций со строками:String str = "Java";
String upperStr = str.toUpperCase(); // Преобразует все символы в верхний регистр
boolean startsWithJ = str.startsWith("J"); // Проверяет, начинается ли строка с символа "J"
String combined = str + " Programming"; // Конкатенация строк
Важно помнить:
✅Использование оператора
+ для многократной конкатенации строк в цикле может быть неэффективным по производительности из-за создания множества временных объектов String. В таких случаях рекомендуется использовать StringBuilder или StringBuffer.✅Для сравнения строк по содержимому следует использовать метод
equals(), а не оператор ==, который сравнивает ссылки на объекты.Строки — мощный инструмент для работы с текстовыми данными, поддерживающий широкий спектр операций и обеспечивающий удобство и безопасность использования благодаря своей неизменяемости.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых