불변객체와 가변객체 (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

BELATED ARTICLES

more