Ответ вслух Middle Современная Java: record, sealed спрашивают часто обновлено

Что используете из современной Java

Вопрос

Что из Java 17 и 21 вы используете в работе и зачем?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Record использую для DTO, событий, результатов запросов и составных ключей: не нужен Lombok, equals и hashCode корректны. Для моделей с закрытым набором вариантов, например статусов платежа с разными данными, делаю sealed-интерфейс с record-реализациями и обрабатываю через switch с pattern matching.

Что должно прозвучать в ответе

  • record для DTO, событий, ключей

  • sealed-иерархии для закрытых моделей

  • switch-выражения и pattern matching с проверкой исчерпываемости

  • Текстовые блоки для SQL и JSON

  • Виртуальные потоки для блокирующего I/O

  • SequencedCollection: getFirst, getLast, reversed

Что могут спросить следом

  • Почему record не подходит для JPA-сущности?
  • Что поменялось в Java 25?

Разбор

Record использую для DTO, событий, результатов запросов и составных ключей: не нужен Lombok, equals и hashCode корректны. Для моделей с закрытым набором вариантов, например статусов платежа с разными данными, делаю sealed-интерфейс с record-реализациями и обрабатываю через switch с pattern matching. Плюс в том, что без default компилятор проверяет исчерпываемость: добавил вариант, и он сам покажет все места, где его не обработали. Текстовые блоки беру для SQL и JSON в тестах. В Java 21 включаю виртуальные потоки для сервисов с блокирующим вводом-выводом, в Spring Boot это одно свойство. Из мелочей getFirst и getLast у списков. В Java 25 стали стабильны компактные исходники с void main() и код до вызова super в конструкторе.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме