Встречается на 2% собеседований по Java
Как исправишь периодическую перезагрузку сервера из-за OutOfMemoryError
Проблема OutOfMemoryError обычно связана с утечками памяти или неоптимальным управлением объектами. Основные шаги для решения:
- Анализ дампа памяти:
java
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof- Оптимизация JVM параметров:
java
-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m- Проверка кода:
- Устранить утечки в коллекциях (особенно static)
- Закрывать ресурсы (try-with-resources)
- Оптимизировать кэширование
- Проверить работу с большими файлами/потоками
- Мониторинг:
- Использовать VisualVM, JConsole
- Настроить алерты при достижении 80% памяти
Пример опасного кода:
java
// Плохо - статическая коллекция растет без ограничений
static List<Object> cache = new ArrayList<>();
// Лучше - использовать WeakReference или ограниченный кэш
static Map<Key, WeakReference<Value>> cache = new WeakHashMap<>();
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы