Встречается на собеседованиях • сегодня

Как очищается память в Java

В Java память управляется автоматически с помощью сборщика мусора (Garbage Collector, GC). Объекты, на которые нет ссылок, помечаются как "мусор" и удаляются во время сборки.

Основные принципы:

  1. Достижимость – объект удаляется, если нет ссылок из корневых точек (например, статических полей, локальных переменных в стеке).
  2. Сборщики мусора – разные алгоритмы (Serial, Parallel, CMS, G1, ZGC) с разными стратегиями (stop-the-world, concurrent).
  3. Финализация – метод finalize() (устарел, лучше использовать Cleaner или PhantomReference).

Пример:

java
Object obj = new Object(); // Создаётся объект в куче  
obj = null; // Объект становится кандидатом на удаление  
System.gc(); // Подсказка JVM запустить GC (но не гарантия)  

Важно:

  • Нельзя принудительно удалить объект.
  • Утечки памяти возможны из-за статических коллекций, незакрытых ресурсов (например, InputStream).
  • Для управления памятью вне кучи (off-heap) используются ByteBuffer или библиотеки вроде Unsafe.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы