Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: Java, record, immutable, data carrier, POJO

Что такое record в Java и для чего он используется?

Проверяет понимание record в Java — компактного способа создания неизменяемых классов-носителей данных, введённого в Java 14.

Короткий ответ

Record — это специальный тип класса в Java, предназначенный для хранения неизменяемых данных. Он автоматически генерирует конструктор, геттеры, методы equals(), hashCode() и toString(). Используется вместо громоздких POJO-классов для упрощения кода.

Длинный ответ

Что такое record в Java?

Record — это новая фича, появившаяся в Java 14 (в preview) и ставшая стабильной в Java 16. Она позволяет создавать неизменяемые классы-носители данных (data carriers) с минимальным количеством кода. Вместо того чтобы вручную писать поля, конструктор, геттеры, equals, hashCode и toString, вы просто объявляете record с компонентами, и всё это генерируется автоматически.

Как это работает?

Объявление record выглядит так:

public record Point(int x, int y) { }

Этот record автоматически создаёт:

  • приватные финальные поля x и y
  • конструктор с параметрами x и y
  • методы доступа x() и y() (не getX/getY)
  • equals(), hashCode() и toString() на основе всех компонентов

Record не может быть наследован (он финальный), и все его поля неизменяемы (final).

Пример использования

public record User(String name, int age) { }

public class Main {
    public static void main(String[] args) {
        User user = new User("Alice", 30);
        System.out.println(user.name()); // Alice
        System.out.println(user); // User[name=Alice, age=30]
    }
}

Когда применять?

Record идеально подходит для DTO (Data Transfer Objects), ответов API, ключей в мапах, кортежей и любых случаев, где нужен простой неизменяемый контейнер данных. Он делает код чище и уменьшает вероятность ошибок, связанных с ручной реализацией equals/hashCode.

Вывод: Используйте record, когда вам нужен простой, неизменяемый класс для хранения данных без дополнительной логики. Это улучшает читаемость и поддерживаемость кода.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Java

    Java

Ключевые слова

#Java

#record

#immutable

#data carrier

#POJO

Подпишись на Java Developer в телеграм