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

Какие знаешь способы устранить увеличение кэша

В Java можно использовать SoftReference или WeakReference для объектов, которые могут быть удалены GC при нехватке памяти. Также эффективно применение LinkedHashMap с переопределением removeEldestEntry() для ограничения размера.

Пример с LinkedHashMap:

java
Map<K, V> cache = new LinkedHashMap<K, V>(16, 0.75f, true) {
    @Override
    protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
        return size() > MAX_SIZE;
    }
};

Для сложных сценариев подходят библиотеки (Caffeine, Ehcache), поддерживающие политики вытеснения (LRU, LFU, TTL).

Дополнительно:

  • Очистка по таймеру (ScheduledExecutorService)
  • Использование PhantomReference для ресурсоемких объектов
  • Ручное управление через clear() при достижении лимита
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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