Java — чек-лист
Чек-лист самопроверки
- Что такое Java и для каких задач он предназначен?
- Какие существуют издания Java (Java SE, EE, ME)?
- Что такое JVM, JRE и JDK — и чем они отличаются?
- Как происходит компиляция и выполнение Java-программы?
- Что такое байт-код и зачем он нужен?
- Как работает JIT-компиляция?
- Почему Java считается платформонезависимым языком?
- Какие есть типы данных в Java (примитивные и ссылочные)?
- В чём разница между
intиInteger? - Как работает автоматическая упаковка и распаковка (
autoboxing/unboxing)? - Что такое
String,StringBuilderиStringBuffer— и когда что использовать? - Как объявляются и инициализируются массивы?
- Что такое переменные экземпляра, локальные переменные и статические переменные?
- Как работают области видимости (
public,private,protected, package-private)? - Что такое конструктор и какие его виды бывают?
- Можно ли перегружать конструкторы и методы?
- Что такое
thisи как он используется? - Что такое статические методы и поля?
- Как работает наследование в Java?
- Почему Java не поддерживает множественное наследование классов?
- Что такое интерфейсы и как они отличаются от абстрактных классов?
- Что изменилось в интерфейсах с Java 8 (дефолтные и статические методы)?
- Что такое полиморфизм и как он реализуется?
- Что такое инкапсуляция и как она обеспечивается?
- Что такое абстракция и как она выражается в коде?
- Что такое
finalи где он применяется? - Как работают исключения в Java? Какие бывают типы?
- В чём разница между
Error,Exception,RuntimeException? - Как создаются собственные исключения?
- Что такое
try-with-resourcesи зачем он нужен? - Что такое generics и зачем они нужны?
- Как работают ограничения типов (
extends,super)? - Что такое
List,Set,Map— и какие реализации существуют? - В чём разница между
ArrayListиLinkedList? - Как работает
HashMapпод капотом? - Что такое
equals()иhashCode()— и почему их нужно переопределять вместе? - Что такое лямбда-выражения и как они синтаксически записываются?
- Что такое функциональные интерфейсы (
Function,Predicate,Consumer,Supplier)? - Как работает Stream API?
- В чём разница между последовательными и параллельными потоками?
- Что такое
Optionalи как он помогает избежатьNullPointerException? - Как работают аннотации и какие встроенные аннотации есть?
- Что такое рефлексия и когда её стоит использовать?
- Как работает многопоточность в Java (
Thread,Runnable,ExecutorService)? - Что такое
synchronized,volatile,ReentrantLock? - Что такое
CompletableFutureи как он упрощает асинхронное программирование? - Как работает сборка мусора в JVM?
- Какие есть типы GC (Serial, Parallel, G1, ZGC)?
- Что такое модули в Java 9+ и как они объявляются?
- Какие современные возможности появились в Java 14–21 (
record,sealed classes, pattern matching,var)?
Материалы по вопросам 11, 37–50: строки, Stream API, ввод-вывод, асинхронность, аннотации и рефлексия, современные конструкции.
Полная карта типовых вопросов (JavaRush Top-50, ITVDN 250+): Вопросы на собеседовании — Core Java.
Практика — напишите без IDE три программы из Lab — консольные задачи (сумма двух чисел, чётные, FizzBuzz) — это закрывает вопросы 12–16 чек-листа. Для GUI — одно окно с кнопкой из Lab — Swing после теории JavaFX и GUI.