Назад к вопросам
Junior — Middle
55
Что представляет собой неизменяемость объектов в Java и какие классы по умолчанию являются таковыми?
Ответ от нейросети
sobes.tech AI
Неизменяемость объектов в Java означает, что после создания объекта его состояние (значения полей) нельзя изменить. Это повышает безопасность и упрощает многопоточную работу, так как неизменяемые объекты не требуют синхронизации.
Класс считается неизменяемым, если:
- Все поля объявлены как final.
- Класс объявлен как final или не имеет методов, которые могут изменить состояние.
- Нет сеттеров или других методов, изменяющих поля.
- Если поля — ссылки на объекты, то эти объекты тоже неизменяемы или копируются при передаче.
Примеры неизменяемых классов в стандартной библиотеке Java:
String- Обертки примитивных типов:
Integer,Long,Double,Booleanи т.д. BigInteger,BigDecimal
Пример создания собственного неизменяемого класса:
public final class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}