Незмінність Рядків у Java
Свайпніть щоб показати меню
Ви вже знаєте, що рядки зберігають текст, наприклад, імена клієнтів, назви продуктів і повідомлення. Але особливістю рядків у Java є те, що вони незмінні.
Незмінність означає, що після створення об'єкта String його вміст неможливо змінити. Будь-яка операція, яка виглядає як зміна рядка, насправді створює новий об'єкт String у фоновому режимі.
Приклад
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int stock = 20; String drink = "Espresso"; stock = 15; drink = "Cappuccino"; System.out.println(stock); // 15 System.out.println(drink); // Cappuccino } }
Хоча обидві змінні були переназначені, вони поводяться по-різному на внутрішньому рівні. Для int змінна безпосередньо зберігає значення — переназначення просто замінює його. Але String — це тип-посилання, тобто змінна зберігає адресу, яка вказує на об'єкт String у пам'яті. Коли присвоюється drink = "Cappuccino", Java не змінює "Espresso" — вона створює абсолютно новий об'єкт String і змушує drink вказувати на нього. Оригінальний об'єкт "Espresso" залишається незмінним.
Як це працює крок за кроком
String drink = "Espresso";
Java створює об'єкт String "Espresso", і drink вказує на нього.
drink = "Cappuccino";
Java створює новий об'єкт String "Cappuccino", тепер drink вказує на новий об'єкт. "Espresso" залишається незмінним.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат