← 질문 목록
#388깊이 0

final 키워드만으로 불변 객체가 완성되지 않는 이유는 무엇인가?

언어 · 런타임

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

final은 참조 변수의 재할당만 막을 뿐 가리키는 객체의 내부 상태 변경까지 막지 못하기 때문이다.

구분final 참조 변수불변 객체
재할당불가능대상 없음
내부 상태 변경가능불가능

List 필드에 final을 붙이면 변수가 다른 List를 가리키지 못한다. 하지만 List 내부에 요소를 추가하거나 삭제하는 동작은 그대로 허용한다.

완전한 불변 객체를 만들려면 모든 필드를 private final로 선언한다. 가변 참조 타입 필드는 외부 노출 시 방어적 복사나 불변 컬렉션을 쓴다.

불변 객체는 스레드 안전성을 확보하여 공유 시 동기화 비용을 줄인다. 다만 내부 값이 바뀔 때마다 새 객체를 생성하는 비용이 든다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

final 키워드만으로 불변 객체가 완성되지 않는 이유는 무엇인가?