Java - String 자료형과 StringBuffer

 String 자료형에 + 연산이 있을 때마다 새로운 String 객체가 생성된다(문자열 간 + 연산이 있는 경우 자바는 자동으로 새로운 String 객체를 만들어 낸다.

 

따라서 메모리에 효율적인 사용을 위해서 StringBuffer를 사용하기도 한다.

 

1. StringBuffer

StringBuffer sb = new StringBuffer();  // StringBuffer 객체 sb 생성
sb.append("this");
sb.append("is");
sb.append("String");
String result = sb.toString();
System.out.println(result);

 

2. String 

String result = "";
result += "This";
result += "is";
result += "String";
System.out.println(result);

 

 

두개의 예제의 결과는 동일하지만 첫번째는 StringBuffer 객체는 한번만 생성되는 반면에

두번째는 String 자료형에 +연산이 3번이나 추가되었기에 총 4개의 String 자료형 객체가 자동으로 생성된다.

 

그렇다면 무조건 StringBuffer를 사용하는것이 좋은가?

 

그건 상황마다 다르다고 한다. 일반적으로 StringBuffer자료형은 String보다 무거운 편에 속하며

따라서 문자열 추가나 변경등의 작업이 많을 경우에 StringBuffer를 그렇지 않는 경우는 그냥 String을

사용하는 것이 유리하다.