Какие две технические книги по Java вы прочитали в 2023 году и что из них почерпнули?

«Какие две технические книги по Java вы прочитали в 2023 году и что из них почерпнули?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

В 2023 году я углубил знания по Java, прочитав две фундаментальные книги:

  1. «Effective Java» (Joshua Bloch, 3rd Edition)

    • Почему это важно: Это must-read для любого серьезного Java-разработчика. Книга учит не просто синтаксису, а идиоматическому использованию языка.
    • Ключевые insights:
      • Лучшие практики работы с дженериками, лямбда-выражениями и стримами.
      • Правильная реализация методов equals(), hashCode() и toString().
      • Применение современных фич: records для моделирования данных, sealed classes для контроля наследования.
  2. «Java Concurrency in Practice» (Brian Goetz)

    • Почему это важно: Исчерпывающее руководство по многопоточности, объясняющее не только «как», но и «почему».
    • Ключевые insights:
      • Понимание модели памяти Java (Java Memory Model) и гарантий happens-before.
      • Использование потокобезопасных коллекций из java.util.concurrent.
      • Применение атомарных переменных (AtomicLong, AtomicReference) для lock-free алгоритмов.

Пример из практики (потокобезопасный счетчик):

public class RequestCounter {
    private final AtomicLong count = new AtomicLong(0);

    public long increment() {
        // Атомарная операция без явной блокировки (synchronized)
        return count.incrementAndGet();
    }
}

Обе книги значительно повысили качество моего кода, особенно в области проектирования API и создания надежных многопоточных приложений.