본문 바로가기
Language/Java

[Java] StringBuilder란?

by DevPark 2023. 8. 25.

StringBuilder란?

StringBuilder는 문자열을 효율적으로 조작하기 위한 클래스로, 자바에서 문자열을 빠르게 추가, 수정, 삭제할 때 사용됩니다. String 클래스와 유사하지만, String 클래스는 불변(immutable)이기 때문에 문자열을 변경할 때마다 새로운 문자열 객체가 생성되는 반면, StringBuilder는 가변(mutable)하게 문자열을 조작할 수 있습니다. 이로써 문자열 조작 시 메모리 사용과 성능이 향상됩니다.

 

 

StringBuilder 클래스 주요 특징 

1. 가변성

StringBuilder 객체는 문자열을 변경할 수 있는 가변성을 가집니다. 즉, 문자열을 추가하거나 수정하면 새로운 객체를 생성하지 않고 내부적으로 조작합니다.

2. 메모리 효율

StringBuilder는 내부적으로 동적 배열을 사용하여 문자열을 저장하므로, 크기에 맞게 메모리를 효율적으로 관리합니다.

3. 메서드 제공

StringBuilder 클래스는 문자열 조작에 필요한 다양한 메서드를 제공합니다.

예를 들어, append(), insert(), delete(), replace() 등의 메서드를 사용하여 문자열을 추가, 삽입, 삭제, 교체할 수 있습니다.

4. 쓰레드 안전하지 않음

StringBuilder는 동기화를 보장하지 않기 때문에 멀티쓰레드 환경에서 안전하지 않습니다.

멀티쓰레드 환경에서는 대신 StringBuffer 클래스를 사용할 수 있습니다.

 

StringBuilder 예시 사용법 

 

StringBuilder sb = new StringBuilder();

sb.append("Hello");  // 문자열 추가
sb.append(" ");      // 공백 추가
sb.append("World");  // 문자열 추가

String result = sb.toString();  // StringBuilder의 내용을 문자열로 변환

System.out.println(result);  // "Hello World" 출력

 

StringBuilder는 문자열 조작 시 성능상 이점을 제공하므로, 문자열을 동적으로 조작해야 할 경우에 유용하게 사용됩니다.

반응형