스킬(skills)/자바(Java)

mutable 과 immutable 객체

후바스탱크 2013. 12. 11. 17:49

mutable 객체는

객채 내의 특정 요소를 변경 할 수 있는 객체를 mutable 객체라고 한다.

List, ArrayList, HashMap 등의 컬렉션들은 대표적인 mutable 객체라고 할 수 있다.

예)

map.put("a");

map.put( new Integer(2) );

 

immutable 객체는

반대로 객체 내의 특정 요소의 값을 변경 할 수 없는 객체들을 말한다.

String, Integer, Double, Long 과 같은 객체는 대표적인 immutable 객체이다.

String a = "abcd";

a = 'c';

위와 같은 경우는 타입이 달라 불가능 하므로 immutable 이다.

 

하지만 다음과 같은 경우는 가능하다.

String a = "abcd" + 'c' + 10000;

위의 경우는 JAVA 가 컴파일 시점에 StringBuffer 로 변환하여 처리하기 때문에 다음처럼 처리된다고 보면 된다.

StringBuffer a = new StringBuffer().append("abcd").append('c').append(10000);