Введение в Java
Теория: Модуль 6. Урок 1. Составные строки в Java.
Создание строк
-
С помощью присвоения некой строки соответствующей по типу ссылке:
final String string = "Some string"; -
С помощью конструктора, который на вход принимает строку:
final String name = new String("Slava");
- С помощью массива символов. Для начала уясним:
Литералы - это объекты, которые создаются в коде на основании записи, сделанной по определенным правилам.
Двойные кавычки означают, что это строковый литерал и содержимое должно быть преобразовано в объект
String. Одинарные кавычки - объектchar. Зная это, можно переписать строку из предыдущего примера следующим образом:
Теперь вы знаете, что String это ссылочный тип, который внутри реализован как массив char.
- С помощью специальных классов-билдеров.
Существует два специальных класса для создания
String:StringBuilderиStringBuffer. StringBuilder резервирует массив на 16 символов больше, чем нужно изначально. Следующее увеличение размера в два раза плюс один символ. Работает намного быстрее, чем через обычныйString().
Конструкторы класса StringBuilder:
-
Создает массив через конструктор супер, передает туда длину строки плюс 16 символов и добавляет текущую строчку.
-
Создает пустой массив заданной длины.
-
Default - создает массив на 16 символов.
Наследование и предки этих билдеров:
String builder и String buffer --> AbstractStringBuilder --> Object
Для StringBuffer работают те же конструкторы и работает он так же, как и StringBuilder, за одним исключением: StringBuffer безопасен для использования в многопоточный среде, но очень медленный. В свою очередь StringBuilder небезопасный для такого использования, но быстр.
Рекомендую почитать спецификации на каждый из этих классов, изучить методы и их применение. Где искать информацию по конкретным классам Вы уже должны знать к этому уроку :)
Отдельно стоит упомянуть оператор конкатенации +. Строки он просто объединяет.
При конкатенации (объединении) строк часто возникают проблемы с выделением памяти, появляется ошибка OutOfMemoryError. Поэтому для частого преобразования строки путем ее наполнения новыми символами или даже строками - лучше использовать билдеры.
Из-за больших объемов строк, которые будут объединяться с помощью обычного оператора конкатенации - может зависать программа, т.к. Garbage Collector приостанавливает работу программы для очистки различных остатков строк.
Спецификация класса String Не стесняйтесь искать там методы, которые уже решают поставленные задачи или как-то помогают их решать.
Завершено
0 / 38