ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Чек-лист самопроверки
- Что такое 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)?