Вопрос с собеседования · Java

Что дают switch-выражения, text blocks и сопоставление с образцом в современной Java?

JuniorСовременная Java
Ещё спрашивают так:
  • Что такое switch expression?
  • Что такое pattern matching для instanceof?
Коротко

Switch-выражение (Java 14) возвращает значение, использует стрелки case A -> ... без проваливания и требует покрыть все варианты (для enum и sealed — проверяет компилятор). Text blocks (Java 15) — многострочные строки в тройных кавычках """ без экранирования переводов строк — удобно для SQL и JSON. Pattern matching для instanceof (Java 16) — if (obj instanceof String s) сразу даёт переменную нужного типа; в Java 21 шаблоны работают и в switch, включая record-шаблоны.

  • Нет break и случайного проваливания между case
  • Несколько меток: case SAT, SUN -> "выходной"
  • yield — вернуть значение из блока case

А ещё Вместе с sealed и record это даёт компактную и проверяемую обработку вариантов

Подробно

String type = switch (day) {
    case SAT, SUN -> "выходной";
    default -> "будни";
};

String sql = """
    SELECT id, name
    FROM users
    WHERE active
    """;

if (shape instanceof Circle c) {
    return Math.PI * c.r() * c.r();
}

double area = switch (shape) {
    case Circle c -> Math.PI * c.r() * c.r();
    case Square s -> s.side() * s.side();
};

Что хотят услышать

  • Switch-выражения со стрелками и полнотой.
  • Text blocks.
  • Pattern matching в instanceof и switch.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Switch-выражение возвращает значение без проваливания, text blocks — многострочные строки
  • ✗Switch-выражение со стрелками по-прежнему проваливается в следующий case без break
  • ✗Text blocks требуют экранировать каждый перевод строки и каждую кавычку внутри текста
  • ✗Pattern matching доступен только в Java 8

Связанные вопросы

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

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

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

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