Встречается на 2% собеседований по Java

Как исправишь периодическую перезагрузку сервера из-за OutOfMemoryError

Проблема OutOfMemoryError обычно связана с утечками памяти или неоптимальным управлением объектами. Основные шаги для решения:

  1. Анализ дампа памяти:
java
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof
  1. Оптимизация JVM параметров:
java
-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m
  1. Проверка кода:
  • Устранить утечки в коллекциях (особенно static)
  • Закрывать ресурсы (try-with-resources)
  • Оптимизировать кэширование
  • Проверить работу с большими файлами/потоками
  1. Мониторинг:
  • Использовать VisualVM, JConsole
  • Настроить алерты при достижении 80% памяти

Пример опасного кода:

java
// Плохо - статическая коллекция растет без ограничений
static List<Object> cache = new ArrayList<>();

// Лучше - использовать WeakReference или ограниченный кэш
static Map<Key, WeakReference<Value>> cache = new WeakHashMap<>();
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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