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

Как обнаружить OutOfMemoryError

OutOfMemoryError возникает, когда JVM не может выделить память для новых объектов. Основные способы обнаружения:

  1. Логирование: Ошибка логируется в логах приложения как java.lang.OutOfMemoryError. Можно настроить логирование через SLF4J/Log4j.
  1. JMX мониторинг: Использовать инструменты вроде VisualVM, JConsole для отслеживания потребления памяти (heap, metaspace).

  2. Аргументы JVM:

java
-XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=/path/to/dump.hprof
  1. Программный мониторинг:
java
Runtime runtime = Runtime.getRuntime();
long usedMemory = runtime.totalMemory() - runtime.freeMemory();
if (usedMemory > someThreshold) {
    // Предпринять действия
}
  1. Профилировщики: YourKit, JProfiler помогают анализировать утечки памяти.

Для разных типов OOM (Heap, Metaspace, Stack) подходы схожи, но требуют разной настройки JVM.

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

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

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

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