Примитивные vs Ссылочные типы в Java
Это одна из самых недопонятых тем в Java.
Многие разработчики знают, что такое примитивные и ссылочные типы, но не то, как они хранятся в памяти.
Понимание этой разницы делает такие темы, как String, Arrays, Objects и Garbage Collection, гораздо более лёгкими для усвоения.
🔹 Примитивные типы
Примитивные переменные хранят фактическое значение.
Примеры:
- byte
- short
- int
- long
- float
- double
- char
- boolean
int age = 25;
double price = 99.99;
char grade = 'A';
boolean isJavaFun = true;
Представьте, что вы пишете число прямо на листе бумаги.
age → 25
🔹 Ссылочные типы
Ссылочные переменные не хранят сам объект.
Они хранят адрес памяти (ссылку) объекта.
Примеры:
- String
- Массивы
- Классы
- Интерфейсы
- Перечисления (Enums)
- Записи (Records)
String name = "Vishwanath";
int[] numbers = {1, 2, 3, 4};
Student student = new Student();
Представьте, что вы храните адрес дома, а не сам дом.
name ───► "Vishwanath"
Простой способ запомнить
- Примитив = хранит значение
- Ссылка = хранит адрес объекта
Совет для собеседования
Что произойдёт здесь?
String a = "Java";
String b = a;
b = "Spring";
Станет ли a тоже "Spring"?
Нет.
b обновляется, чтобы ссылаться на другой объект String, в то время как a всё ещё указывает на исходную строку "Java".
Понимание ссылок объясняет, почему поведение объектов отличается от примитивных значений.
Освоение этой концепции значительно облегчит понимание:
- Stack vs Heap памяти
- Объектов и Классов
- Параметров методов
- Коллекций
- Сборки мусора (Garbage Collection)
👉 Java Portal
Post #2471
1.22K

- ❤ 5