final은 키워드이고, Immutable은 패턴이다.
final은 Immutable인가?
아니다
final
변수의 참조주소는 변경될 수 없다.
immutable
객체내부의 값들이 수정될 수 없다.
String.class 는 immutable이다.
String 객체는 한번 선언되면 그 값이 변경되지 않기 때문
Example
String name = "Bactoria";
name = "Junoh";
“Bactoria”객체의 value가 “Junoh”로 변경된 것 처럼 보일 수도 있지만,
아래처럼 이루어진다.
final
은 참조를 변경하지 못한다.
final Stirng name = "Bactoria";
name = "Junoh";
이펙티브자바에서 변경 불가능 클래스
는 String 과 같은 immutable class를 말한다.
final이랑 헷갈리지말자.
참고자료
What is the difference between immutable and final in java? - 스택오버플로우
近期评论