Page 62 - 4836
P. 62
Найперше потрібно зрозуміти, що будь-який рядок
насправді – це об’єкт типу String. Рядкові константи є також
об’єктами типу String:
System.out.println(“Цей рядок – це константа типу
String”);
По-друге, об’єкти типу String є незмінними. Після того
як об’єкт створений, його зміст не може змінюватися. Будь-
яка зміна приводить до створення іншого об’єту. Може
здатися, що це певне обмеження, але це не так і причини тут
дві:
1. Якщо потрібно змінити рядок, то завжди можна
створити інший рядок, який буде містити всі зміни.
2. У java визначений рівноправний клас String,
StringBuffer, який допускає зміни рядками, що дозволяє
робити всілякі маніпуляції з рядками.
Коли Java стикається з літералом, укладеним в подвійні
лапки, автоматично створюється об'єкт типу String, на який
можна встановити посилання. Таким чином, об'єкт класу
String можна створити, присвоївши посиланням на клас
значення існуючого літерала, або за допомогою оператора new
і конструктора, наприклад:
String myString = "Це рядок";
Можна просто спочатку оголосити змінну (яка отримає
значення null) , а потім змусити її посилатися на рядок -
константу, інший рядок або скористатися командою new, щоб
явним чином виділити пам'ять для рядка:
String s1, s2, s3; // Оголошення трьох змінних, які поки
не пов'язані з жодним рядком
s1 = "Хай живе день програміста";// Змінна s1 тепер
посилається на область пам'яті, в якій зберігається рядок "Хай
живе день програміста"
s2 = s1; // Тепер обидві змінні s1 і s2 посилаються на
одне і те ж місце пам'яті
60