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

Зачем нужен метод finalize() из класса Object

Метод finalize() вызывается сборщиком мусора перед удалением объекта, если он переопределён. Позволяет выполнить cleanup-действия (например, освобождение ресурсов). Однако не рекомендуется полагаться на него, так как:

  1. Нет гарантии вызова – сборщик мусора может не вызвать finalize().
  2. Производительность – замедляет работу GC из-за дополнительной обработки.
  3. Неопределённое время вызова – объект может висеть в памяти долго.

Лучше использовать try-with-resources или явный вызов close().

java
@Override
protected void finalize() throws Throwable {
    try {
        // cleanup (например, закрытие файла)
    } finally {
        super.finalize(); // важно вызывать!
    }
}

Альтернатива: Реализуйте AutoCloseable и управляйте ресурсами явно.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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