Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
@bookjava
🖥️ Java: передача по значению или по ссылке? 🤔 В Java передача данных происходит ТОЛЬКО по значению (pass-by-value). Однако работа с объектами может ввести в заблуждение и создать впечатление, что передача идет по ссылке. 🔹 Как работает передача в Java? ✅ Примитивные типы (int, double, char): передается копия значения. Изменения внутри метода не влияют на оригинальную переменную. ✅ Объекты (экземпляры классов): передается копия ссылки на объект, а не сам объект. Внутри метода можно изменить состояние объекта, но нельзя изменить саму ссылку на него. 📌 Примеры 🔹 Передача примитивов (значение не изменяется) public class Test { public static void modifyPrimitive(int num) { num = 10; // Это изменение локальное } public static void main(String[] args) { int x = 5; modifyPrimitive(x); System.out.println(x); // Выведет: 5 (не изменилось) } } 🔹 Передача объекта (изменение состояния объекта сохраняется) class Person { String name; } public class Test { public static void modifyObject(Person p) { p.name = "Alice"; // Изменяет состояние объекта } public static void main(String[] args) { Person person = new Person(); person.name = "Bob"; modifyObject(person); System.out.println(person.name); // Выведет: Alice } } 🔹 Переназначение ссылки (не изменяет оригинальный объект) class Person { String name; } public class Test { public static void reassignReference(Person p) { p = new Person(); // Переназначение ссылки (локально) p.name = "Charlie"; } public static void main(String[] args) { Person person = new Person(); person.name = "Bob"; reassignReference(person); System.out.println(person.name); // Выведет: Bob (не изменилось) } } 🔥 Итог 🔹 Java всегда передает данные по значению! 🔹 Примитивы передаются как копии значений. 🔹 Объекты передаются как копии ссылок, но изменения внутри объекта сохраняются. 🔹 Если внутри метода изменить саму ссылку, это не повлияет на оригинальный объект. 👉 @BookJava
Если у вас установлено приложение,
вы можете сразу перейти в канал