String 클래스와 StringBuilder 클래스의 공통점

- 참조(reference)자료형 : 값을 갖는 '객체'의 주소를 참조하고 실제 값은 힙(heap) 메모리에 저장

- Java에서 문자열을 다루기(저장,조작 등) 위한 클래스

- 문자열을 연결,비교,길이를 반환하는 기능을 제공

- 문자열을 출력하는데 사용

 


 

String 클래스와 StringBuilder 클래스의 차이점

- String 클래스는 불변(immutable)성 때문에 문자열 연결 및 변경 시 마다 새로운 객체가 생성됨

- StringBuilder 클래스는 가변(mutable)성을 갖기에 문자열 연결 및 변경 시 기존에 생성했던 객체를 수정하여 새로운 객체를 생성하지 않음

- 위 특성(불변과 가변)으로 인해 스레드 안정성에 있어서 String(불변)은 안전성 보장 O , StringBuilder(가변)는 안전성을 보장 X

(스레드 : 프로그램의 실행 단위로 , 멀티스레드 -> 동시에 여러 작업을 수행)

- 또한 그 특성(불변과 가변)으로 인해 각 클래스에 따라 지원하는 메서드가 다름

 


 

위와 같은 특성으로 인해 하고자 하는 문자열 처리에 적합한 클래스를 선택적으로 사용하면 되는데

 

문자열 더하기의 경우 명시적이고 소량의 문자열을 합치는 경우 '+' 연산자를 사용해도 괜찮지만

 

반복문을 통한 많은 수의 문자열 합치기 등, 더할 문자열이 많을 것으로 예상될 때는

 

String 보다 StringBuilder를 사용하는 것을 고려하면 좋을 것 같다.

 

 

/* StringBuilder 클래스는 .append() 메서드를 이용하여 문자열을 추가 */ 

StringBuilder sb = new StringBuilder();

for (int i = 0; i < 10; i++) {
    sb.append("Num: ").append(i).append(", ");
}

String result = sb.toString();

System.out.println(result);
    
// 출력되는 결과 : 
// Num: 0, Num: 1, Num: 2, Num: 3, Num: 4, Num: 5, Num: 6, Num: 7, Num: 8, Num: 9,

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기