본문 바로가기
JAVA

불변 클래스

by 융디's 2024. 4. 22.
728x90
불변 클래스

불변 클래스

@2024.04.09

불변 클래스(Immutable class)

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

728x90

'JAVA' 카테고리의 다른 글

인터페이스  (0) 2024.04.25
추상 클래스  (0) 2024.04.25
메서드 오버라이딩  (0) 2024.03.31
상속  (0) 2024.03.31
객체지향 프로그래밍  (0) 2024.03.31