Курс · карта «Java»

Java Core

Основы языка — примитивы и строки, ООП, равенство, исключения, дженерики, лямбды и Stream API, современный синтаксис, ввод-вывод и принципы дизайна.

26уроков
≈ 1 чна чтение
Junior–Middleуровень

Уроки

26
  1. 01Примитивы, обёртки и Integer cache

    Восемь примитивов и их диапазоны, autoboxing, кэш Integer и ловушка ==, NPE при распаковке и цена боксинга.

    3 мин
  2. 02Строки: неизменяемость, пул и StringBuilder

    Почему String immutable, String pool и intern, конкатенация и StringBuilder, char/code points и compact strings.

    3 мин
  3. 03final, static и порядок инициализации

    Семантика final (и почему это не immutable), static-члены, порядок инициализации класса и объекта, константы и ловушки.

    3 мин
  4. 04Методы: pass-by-value, перегрузка, varargs

    Почему Java всегда pass-by-value, разрешение перегрузки на этапе компиляции и устройство varargs.

    2 мин
  5. 05ООП и его принципы

    Инкапсуляция, наследование, полиморфизм, абстракция — зачем они нужны, как работают внутри и почему композицию предпочитают наследованию.

    4 мин
  6. 06Интерфейсы против абстрактных классов

    Контракт против частичной реализации, default/static/private-методы, разрешение конфликта default-методов и критерий выбора.

    2 мин
  7. 07Проектирование неизменяемых классов

    Зачем нужна неизменяемость, рецепт immutable-класса, защитные копии, безопасная публикация и records.

    2 мин
  8. 08Равенство: ==, equals и hashCode

    Идентичность против логического равенства, контракт equals и hashCode, проблема equals с наследованием и корректная реализация.

    3 мин
  9. 09Исключения: иерархия и checked/unchecked

    Дерево Throwable, философия checked против unchecked, раскрутка стека и стоимость, цепочки причин и практики обработки.

    2 мин
  10. 10Управление ресурсами: try-with-resources

    Беды ручного finally, автозакрытие AutoCloseable, suppressed-исключения и разница Closeable/AutoCloseable.

    2 мин
  11. 11Дженерики и стирание типов

    Типобезопасность на компиляции, механизм type erasure и его последствия, дженерик-методы, ограниченные параметры и опасность raw types.

    3 мин
  12. 12Wildcards и правило PECS

    Инвариантность дженериков против ковариантных массивов, ? extends/super, и когда что выбирать по PECS.

    2 мин
  13. 13Дженерики: массивы, varargs и bridge-методы

    Почему дженерики не дружат с массивами, heap pollution и @SafeVarargs, синтетические bridge-методы и reifiable-типы.

    2 мин
  14. 14Лямбды и функциональные интерфейсы

    SAM-интерфейсы, лямбда против анонимного класса, замыкания и effectively final, ссылки на методы и стандартные интерфейсы.

    2 мин
  15. 15Stream API: устройство и ленивый конвейер

    Что такое стрим, источники, промежуточные против терминальных, ленивость и short-circuiting, stateful-операции, параллельность и примитивные стримы.

    2 мин
  16. 16Collectors и свёртка

    reduce против collect, базовые коллекторы и ловушка toMap, группировка и downstream-коллекторы, характеристики и параллельность.

    2 мин
  17. 17Optional: явное отсутствие значения

    Зачем Optional, orElse против orElseGet, композиция map/flatMap/filter и антипаттерны использования.

    2 мин
  18. 18Records: компактные носители данных

    Что генерирует record, канонический и компактный конструкторы, ограничения и когда применять.

    2 мин
  19. 19Sealed-типы и pattern matching

    Закрытые иерархии через sealed, pattern matching в instanceof и switch, деконструкция записей и проверка исчерпываемости.

    2 мин
  20. 20Современный синтаксис: var, текстовые блоки, switch

    Локальный вывод типа var, многострочные текстовые блоки, switch-выражения и другие удобства новых версий.

    2 мин
  21. 21Дата и время: java.time

    Почему java.time вытеснил Date/Calendar, машинное (Instant) и человеческое (LocalDateTime) время, часовые пояса, Duration/Period и потокобезопасный DateTimeFormatter.

    2 мин
  22. 22Потоки ввода-вывода: байты, символы, буферы

    Байтовые и символьные потоки, кодировки и Charset, буферизация и системные вызовы, декоратор-паттерн и современный файловый API.

    2 мин
  23. 23NIO: каналы, буферы и неблокирующий ввод-вывод

    io против nio, Channel и ByteBuffer с его flip/clear, Selector и event loop, влияние виртуальных потоков и NIO.2.

    2 мин
  24. 24Сериализация и форматы данных

    Java serialization и её механика, serialVersionUID, почему её опасно использовать и какие форматы выбирают вместо неё.

    2 мин
  25. 25SOLID: пять принципов дизайна

    SRP, OCP, LSP, ISP, DIP — что каждая буква значит на самом деле, как выглядит нарушение в Java-коде, чем DIP отличается от DI и IoC.

    7 мин
  26. 26DRY, KISS, YAGNI и качество связей

    Дублирование знания против дублирования текста, цена преждевременной абстракции, связность и связанность, закон Деметры, каталог code smells и когда рефакторить.

    7 мин
Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования