IT

[Java] String/StringBuilder/StringBuffer 차이

벼락쟁이 2025. 4. 1. 18:55
728x90
반응형
public class StringExample {
    public static void main(String[] args) {
        // 1. String (불변)
        String str = "Hello"; // String str = new String("Hello");
        str += " World"; // 새로운 객체 생성됨
        System.out.println("String: " + str);

        // 2. StringBuilder (가변, 빠름)
        StringBuilder sb = new StringBuilder("Hello");
        sb.append(" World");
        System.out.println("StringBuilder: " + sb);

        // 3. StringBuffer (가변, 멀티스레드 안전)
        StringBuffer sbf = new StringBuffer("Hello");
        sbf.append(" World");
        System.out.println("StringBuffer: " + sbf);
    }
}

 

- 설명: 1은 불변 2,3 은 가변객체이다. 불변(문자열 변경시 새로운 객체 생성), 가변(새로운 객체 생성 x) 인 것 

- 주요 메서드

메서드 String StringBuilder / StringBuffer 설명
length() 문자열 길이 반환
charAt(int index) 특정 위치 문자 가져오기
substring(int start, int end) 문자열 일부 추출
indexOf(String str) 특정 문자열의 위치 찾기
replace(CharSequence target, CharSequence replacement) 특정 문자열 치환
toString() 문자열로 변환
equals(Object obj) 문자열 비교 (StringBuilder/StringBuffer는 오버라이딩 X)
빌더와 필터는 toString().equals()로 비교하거나 compareTo() 사용하여 비교
append(String s) 문자열 추가 (String은 + 연산자로 가능)
insert(int offset, String s) 특정 위치에 문자열 삽입
delete(int start, int end) 특정 범위 문자열 삭제
deleteCharAt(int index) 특정 위치 문자 삭제
reverse() 문자열 뒤집기
setCharAt(int index, char c) 특정 위치 문자 변경
728x90
반응형