Ответ
Ссылочный тип (reference type) — это тип данных, переменная которого хранит не само значение, а ссылку (адрес в памяти) на объект, где это значение находится. Все объекты в Java, включая массивы и строки, относятся к ссылочным типам.
| Ключевые отличия от примитивных типов: | Признак | Примитивный тип (int, boolean) | Ссылочный тип (String, Object, массив) |
|---|---|---|---|
| Хранение | Значение | Ссылка на объект в куче (Heap) | |
| Значение по умолчанию | 0, false и т.д. | null |
|
| Передача в метод | По значению (копируется) | По ссылке (копируется адрес) |
Пример, демонстрирующий поведение ссылок:
String a = "Java"; // a ссылается на строковый литерал в пуле строк
String b = a; // b получает копию ссылки из a. Обе переменные указывают на один объект.
b = "Python"; // Теперь b ссылается на новый объект "Python". a по-прежнему указывает на "Java".
int[] arr1 = {1, 2, 3};
int[] arr2 = arr1; // arr2 и arr1 ссылаются на один массив.
arr2[0] = 99; // Изменение через arr2 видно через arr1: arr1[0] теперь тоже 99.