Sobes.tech
Назад к вопросам
Principal
23

Какие ты знаешь immutable объекты в Java?

Компании, где спрашивали
Black Wall Group

Ответ от нейросети

sobes.tech AI

В Java immutable объекты — это объекты, состояние которых нельзя изменить после создания. Классический пример — класс String. Другие известные immutable объекты:

  • Обёртки примитивных типов: Integer, Long, Double, Boolean и т.д.
  • Классы из пакета java.time (например, LocalDate, LocalDateTime, Instant), которые представляют неизменяемые даты и время.

Чтобы сделать собственный класс immutable, нужно:

  • Сделать класс final или не предоставлять методы для изменения состояния.
  • Все поля — private final.
  • Не предоставлять сеттеры.
  • Если поля — ссылки на изменяемые объекты, создавать их копии при передаче и возврате.

Пример простого immutable класса:

public final class Point {
    private final int x;
    private final int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() { return x; }
    public int getY() { return y; }
}