728x90
불변 클래스
@2024.04.09
불변 클래스(Immutable class)
💡
객체의 상태가 변경될 수 없는 클래스로, 한번 생성된 객체의 내부 상태는 변경할 수 없다.
- 변경을 시도하는 모든 작업은 새로운 객체를 생성하는 것
- 특징
- 내부 상태 변경 불가
- 객체가 생성된 후에는 내부의 필드 값이 변경될 수 없다.
- 모든 필드는 final로 선언되거나, 내부에서 변경할 수 없는 방식으로 캡슐화되어야 한다.
- 상태 수정 대신 새로운 객체 생성
- 객체의 불변성을 보장하면서, 필요한 경우에 변경된 객체를 얻을 수 있다.
String a = "안녕하세요!"; a = "반갑습니다!"; // 새 String 객체 생성
- 객체의 불변성을 보장하면서, 필요한 경우에 변경된 객체를 얻을 수 있다.
- 스레드 안전성
- 여러 스레드에서 안전하게 공유될 수 있다.
- 객체의 상태가 변경되지 않기에 동시에 여러 스레드에서 해당 객체에서 접근해도 안전
- 캐싱 가능
- 불변 클래스는 한번 생성된 객체를 캐싱하여 재사용할 수 있다.
- 메모리를 절약하고, 성능을 향상시킬 수 있다.
- 내부 상태 변경 불가
- 예시 :
String
,Interger
,LocalDate
등
728x90