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

Принимал ли сложные решения

Да, принимал. Например, при разработке высоконагруженного микросервиса столкнулся с проблемой утечки памяти. После анализа через VisualVM обнаружил, что кэш в HashMap рос бесконтрольно. Решение: перешел на WeakHashMap и реализовал LRU-стратегию с ограничением по времени жизни объектов.

java
public class CustomCache<K, V> {
    private final Map<K, V> cache = new WeakHashMap<>();
    private final long ttl;
    
    public CustomCache(long ttlMillis) {
        this.ttl = ttlMillis;
    }
    
    public void put(K key, V value) {
        cache.put(key, value);
        scheduleEviction(key);
    }
    
    private void scheduleEviction(K key) {
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                cache.remove(key);
            }
        }, ttl);
    }
}

Это снизило нагрузку на GC и улучшило стабильность сервиса.

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

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

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

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