Ответ
Изучал следующие ключевые технологии и концепции в экосистеме Java:
Ядро Java:
- Синтаксис и ООП: Классы, объекты, принципы инкапсуляции, наследования, полиморфизма и абстракции.
- Коллекции (Java Collections Framework): Интерфейсы
List,Set,Map,Queueи их реализации (ArrayList,LinkedList,HashSet,HashMap,ConcurrentHashMap). - Многопоточность (Concurrency): Работа с
Thread,Runnable,Callable, синхронизация (synchronized,Lock), атомарные классы,volatile, пулы потоков (ExecutorService). - Исключения: Иерархия
Throwable, checked/unchecked исключения, обработка черезtry-catch-finallyиtry-with-resources. - Stream API и Lambda-выражения: Функциональные интерфейсы, операции
filter,map,flatMap,reduce,collect.
Пример использования Stream API:
List<String> namesStartingWithA = employees.stream()
.map(Employee::getName) // Преобразуем в имена
.filter(name -> name.startsWith("A")) // Фильтруем
.sorted() // Сортируем
.collect(Collectors.toList()); // Собираем в список
Фреймворки и инструменты:
- Spring Framework: Принципы IoC (Inversion of Control) и DI (Dependency Injection), Spring Core, Spring Boot для быстрого создания приложений.
- Работа с данными: Spring Data JPA, Hibernate (ORM), JDBC для доступа к реляционным БД.
- Веб-разработка: Создание RESTful API с помощью Spring MVC / Spring WebFlux.
Базы данных и SQL:
- Основы SQL:
SELECT,INSERT,UPDATE,DELETE, JOIN-операции. - Проектирование: Транзакции (ACID), индексы, нормализация.
Паттерны проектирования:
- Порождающие: Singleton, Factory Method, Builder.
- Структурные: Adapter, Decorator.
- Поведенческие: Strategy, Observer.