스킬(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);