Основы языка: Java
Основы языка Java для backend-разработчика с нуля: синтаксис и типы, ООП, коллекции, дженерики, исключения, лямбды и Stream API, записи и современный Java, инструменты.
Первая фаза программы — сам язык Java, до фреймворков. С нуля и простыми словами: как устроены типы и синтаксис, что стоит за ООП, как работают коллекции и дженерики, как обращаться с исключениями, лямбдами и потоками данных, что нового в современном Java и чем собирать проект. Читать лучше по порядку.
- Синтаксис и типы Java: с чего начинается код — Базовый синтаксис Java простыми словами: переменные и var, примитивы против объектов, автобоксинг, неизменяемые строки, операторы и управляющие конструкции.
- ООП в Java: классы, наследование, интерфейсы, record и enum — Объектно-ориентированное программирование в Java простыми словами: классы и объекты, инкапсуляция, наследование, интерфейсы, полиморфизм, record и enum.
- Коллекции Java: списки, множества и словари — List, Set и Map простыми словами: какие бывают реализации, когда что выбирать, как перебирать, зачем equals/hashCode и как делать неизменяемые коллекции.
- Как устроена HashMap внутри — Что у HashMap под капотом: массив бакетов, индекс по hashCode, коллизии и связные списки, дерево при пороге 8, load factor 0.75, ресайз и зачем нужен equals.
- Дженерики в Java: типобезопасность без приведения типов — Зачем нужны дженерики, как писать обобщённые классы и методы, что значат ? extends и ? super и почему стирание типов меняет правила игры.
- Исключения в Java: иерархия, checked/unchecked, try-with-resources — Как устроены исключения в Java: иерархия Throwable, checked и unchecked, try/catch/finally, try-with-resources, свои исключения и частые антипаттерны.
- Лямбды и Stream API в Java — Что такое функциональные интерфейсы, лямбды и method reference, как работает Stream API (filter/map/reduce/collect) и когда стрим лучше обычного цикла, а когда — наоборот.
- Records, Optional и современный Java — Как record убирает рутину в классах-данных, Optional спасает от NPE, а switch, sealed-классы, pattern matching и text blocks делают код Java 21 короче и яснее.
- Сборка мусора в Java — Зачем нужна автоматическая сборка мусора, как устроена куча и поколения, какие бывают сборщики (Serial, Parallel, G1, ZGC) и что задают флаги -Xms/-Xmx.
- Инструменты Java: JDK, javac, jar, Maven и Gradle — Что такое JDK, JRE и JVM, как компилировать javac и запускать java, что лежит в jar, зачем нужны Maven и Gradle и как управлять версией JDK.