Sobes.tech
Назад к вопросам
Junior — Middle
99

Какие классы реализуют неизменяемые объекты в программировании?

Компании, где спрашивали
СБЕРСБЕР

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

sobes.tech AI

В Java неизменяемые (immutable) объекты — это объекты, состояние которых нельзя изменить после создания. Основные классы, реализующие неизменяемые объекты:

  • String — класс для строк, после создания строка не меняется.
  • Wrapper-классы для примитивов: Integer, Long, Double, Boolean и др.
  • BigInteger и BigDecimal — для работы с большими числами и точной арифметикой.
  • LocalDate, LocalDateTime и другие классы из пакета java.time.

Чтобы создать свой неизменяемый класс, нужно:

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

Пример:

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

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

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