Mediumrecordjava16
Что такое record (Java 16)?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Record — компактное объявление immutable data carrier. Автоматически создаёт final поля, canonical constructor, accessor'ы, equals/hashCode, toString.
record Point(int x, int y) {}
Point p = new Point(1, 2);
p.x(); // accessor (без get)
p.toString(); // "Point[x=1, y=2]"
// Compact constructor — для валидации
record Range(int lo, int hi) {
public Range {
if (lo > hi) throw new IllegalArgumentException();
}
}- Records final — нельзя наследовать, но можно
implements; - Можно добавлять static fields/methods, но не instance fields (только в header);
- Local records — внутри методов;
- Идеально для DTO, value objects;
- Сериализуются иначе (не через reflective field access);
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.