5. 불변객체와 가변객체
2018. 7. 4. 00:52
불변객체와 가변객체 (String vs StringBuffer 와 StringBuilder)
일단 String 과 StringBuffer 또는 StringBuilder 의 차이를 알려면
불변객체 와 가변객체 의 개념부터 알아야 됩니다.
객체 지향 프로그래밍에 있어서 불변객체(immutable object)는 생성 후 그 상태를 바꿀 수 없는 객체를 말한다
가변(mutable) 객체로 생성 후에도 상태를 변경할 수 있다.
용어가 어렵지 사실 쉽게 이해할 수 있다. 반대 개념이고 객체안에 저장된 값을 수정할 수 없거나 수정할 수 있거나.
수정할 수 없다면 불변객체!
수정할 수 있다면 가변객체!
예를 들어, 불변객체 String 으로 문자를 수정해야 될 경우를 보시면 됩니다.
banan (바나나) 라는 문자에 a 가 빠져있습니다. 문자 a 를 추가하기 위해선 String 에 정의된
banan 를 지우고 다시 생성해야 됩니다. 그러므로, 프로그래밍적 자원과 비용이 많이 소모 됩니다.
String = "banan";
String = "banana";
반면, 가변객체 StringBuffer 나 StringBuilder 로 위와 같은 사항을 해결해야 된다면
append() 함수
를 사용하면 쉽게 해결이 가능합니다.
StringBuffer sb = new StringBuffer();
sb.append("banan");
sb.append("a");
출처: https://jaybdev.net/articles/2017-09/Java-4
'Get IT Note > Java' 카테고리의 다른 글
7. ASCII , UNICODE, UTF-8 (0) | 2018.07.05 |
---|---|
6. String, StringBuffer, StringBuilder 의 차이점 (0) | 2018.07.04 |
4. ArrayList와 Array간 변환 (0) | 2018.07.03 |
3. 예외처리 (0) | 2018.07.03 |
2. 난수(Random) (0) | 2018.07.01 |