Бесплатный курс по Java: от основ до продвинутого уровня
Типы строк в Java
Для хранения строки мы знаем тип String. Но он не всегда бывает эффективен.
Поэтому есть еще другие классы для хранения строк и взаимодействия с ними, которые нужно знать.
Поясним на примере:
public class StringTypes {
public static void main(String[] args) {
// Создадим String переменную
String output = “Some text”;
// и добавим в конец этой строки единицу и пробел сто раз.
int count = 100;
for(int i = 0; i < count; i++) {
output += i + " "; // При каждой итерации цикла
// создается НОВЫЙ объект String с очередным добавленным i.
// Просто представьте, как это плохо скажется на памяти
}
System.out.println(output);
}
}
Вывод:
Поэтому существует StringBuffer, который решает эту проблему.
public class StringTypes {
public static void main(String[] args) {
int count = 100;
// Поэтому существует StringBuffer, который решает эту проблему
StringBuffer output = new StringBuffer(110);
// append – добавить в объект StringBuffer текст
output.append(“Some text”);
for(int i = 0; i < count; i++) {
output.append(i + " "); // Теперь при каждой итерации
// работаем всего с одним экземпляром StringBuffer
// Профит!
}
System.out.println(output.toString());
}
}
Вывод:
Также есть StringBuilder – то же самое, что и StringBuffer только потокоНЕбезопасен, поэтому работает быстрее