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

Как решить утечку памяти

Утечки памяти в Java возникают, когда объекты больше не нужны, но остаются достижимыми из-за ошибочных ссылок. Основные способы решения: 1. **Анализ кучи (Heap Dump)** Используйте `jmap` или `jvisualvm` для создания дампа памяти и анализа удерживаемых объектов. 2. **WeakReference/SoftReference** Для кешей или временных данных используйте слабые ссылки: ```java WeakReference weakRef = new WeakReference<>(someObject); ``` 3. **Закрытие ресурсов** Всегда закрывайте `InputStream`, `Connection` и т.д. в `finally` или используйте try-with-resources: ```java try (FileInputStream fis = new FileInputStream("file.txt")) { // работа с потоком } ``` 4. **Очистка коллекций** Удаляйте ненужные элементы из коллекций (особенно статических). 5. **Использование профилировщиков** Инструменты вроде YourKit или Eclipse MAT помогают находить утечки. **Пример утечки:** ```java static List cache = new ArrayList<>(); void addToCache(Object obj) { cache.add(obj); // Объекты никогда не удаляются! } ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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