StringBuilder는 자바에서 문자열을 효율적으로 처리하기 위해 제공되는 클래스입니다. 일반적인 String 클래스와 달리, StringBuilder는 **mutable(변경 가능)**한 객체로, 문자열을 수정하거나 추가할 때 새로운 객체를 생성하지 않고, 기존 객체를 변경하여 성능을 향상시킵니다.

특징 및 장점:

  1. 가변성(Mutable): StringBuilder는 내부적으로 버퍼(buffer)를 사용해 문자열을 저장하고, 문자열을 수정할 때 새로운 객체를 생성하지 않고 기존 객체를 변경합니다. 반면에 String은 불변(immutable)이라서 문자열을 수정할 때마다 새로운 String 객체를 생성하게 됩니다. 이 과정에서 메모리 낭비가 발생할 수 있습니다.
  2. 성능: StringBuilder는 문자열을 빈번하게 수정(삽입, 삭제, 추가)할 경우, 성능이 뛰어납니다. 특히 반복문 안에서 문자열을 누적하거나 연결할 때 매우 유리합니다.
  3. 메서드: StringBuilder는 문자열을 더하거나 삽입, 삭제, 뒤집기 등 다양한 조작을 할 수 있는 메서드를 제공합니다. 이러한 메서드들은 모두 같은 StringBuilder 객체에서 동작하므로 추가적인 메모리 할당 없이 문자열을 쉽게 처리할 수 있습니다.

주요 메서드:

예시 코드:

public class Example {
    public static void main(String[] args) {
        // StringBuilder 생성
        StringBuilder sb = new StringBuilder("Hello");

        // 문자열 추가
        sb.append(" World");
        System.out.println(sb.toString());  // 출력: Hello World

        // 문자열 삽입
        sb.insert(5, " Java");
        System.out.println(sb.toString());  // 출력: Hello Java World

        // 문자열 삭제
        sb.delete(5, 10);
        System.out.println(sb.toString());  // 출력: Hello World

        // 문자열 뒤집기
        sb.reverse();
        System.out.println(sb.toString());  // 출력: dlroW olleH
    }
}

StringBuilderStringBuffer의 차이:

정리:

StringBuilder는 문자열을 자주 수정해야 하는 경우, 특히 성능이 중요한 상황에서 String 대신 사용하는 것이 좋습니다. 단일 쓰레드 환경에서는 StringBuffer보다 더 빠르게 동작합니다.