Bactoria 황준오

final은 immutable한가 ?

2019-02-02
bactoria

final은 키워드이고, Immutable은 패턴이다.

final은 Immutable인가?

아니다

 

final 변수의 참조주소는 변경될 수 없다.

 

immutable 객체내부의 값들이 수정될 수 없다.

 

String.class 는 immutable이다.

String 객체는 한번 선언되면 그 값이 변경되지 않기 때문

   

Example

String name = "Bactoria";
name = "Junoh";

“Bactoria”객체의 value가 “Junoh”로 변경된 것 처럼 보일 수도 있지만,

아래처럼 이루어진다.

image

image

 

final은 참조를 변경하지 못한다.

final Stirng name = "Bactoria";
name = "Junoh";

image

이펙티브자바에서 변경 불가능 클래스는 String 과 같은 immutable class를 말한다.

final이랑 헷갈리지말자.

   

참고자료

What is the difference between immutable and final in java? - 스택오버플로우


황준오 (Bactoria) 황준오 (Bactoria)

.

Comments

Content