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

Как определить причину падения Java приложения при OutOfMemoryError

Для диагностики OutOfMemoryError в Java:

  1. Анализируйте текст ошибки - он указывает тип памяти (Heap, Metaspace, Direct Memory и т.д.)

  2. Используйте JVM флаги для дампа памяти при ошибке:

java
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof
  1. Анализируйте дамп с помощью инструментов:
  • Eclipse MAT (Memory Analyzer Tool)
  • VisualVM
  • YourKit
  1. Проверьте логи приложения на предмет утечек памяти (например, не закрытые ресурсы, кэши без ограничений)

  2. Для разных типов OOM:

  • Heap: ищите утечки объектов
  • Metaspace: проверьте загрузку классов
  • Direct Memory: проверьте ByteBuffer и NIO

Пример анализа в MAT:

java
// В отчете ищите:
// - Dominator Tree (крупнейшие объекты)
// - Leak Suspects Report
// - Path to GC Roots
  1. Для мониторинга в реальном времени используйте JMX или JConsole.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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