JAVA

StringBuffer 클래스

jiyoon12 2025. 4. 26. 14:55
  • String 클래스의 불변성으로 인해 문자열을 자주 변경할 때 메모리 낭비가 발생한다면, 이를 해결하기 위해 사용한다.
  • 내부적으로 가변적인 char[] 배열을 사용하여 문자열을 변견한다.
  • 동기화(synchronization)을 지원하므로 멀티스레드 환경에서 안전하다.
  • 멀티스레드 환경(예: 백엔드 서버)에서 사용을 권장한다.
package _string;

public class StringBufferTest1 {

    // StringBuffer <-- 클래스를 이야기 하기 위해서 String 특징 ...
    public static void main(String[] args) {

        String str1 = new String("Hello");
        String str2 = new String("World");

        // 새로 배우는
        StringBuffer buffer1 = new StringBuffer(str1);

        System.out.println("수정 전 : " + System.identityHashCode(buffer1));

        // buffer1 에 값을 수정해 보자. 문자열 변경
        buffer1.append(str2);
        buffer1.append("111");
        buffer1.append("222");

        System.out.println("수정 후 : " + System.identityHashCode(buffer1));

    } // end of main
}

 

package _string;

public class StringBufferTest1 {

    //StringBuffer <-- 클레스를 이해하기 위해서
    public static void main(String[] args) {

        String str1 = new String("Hello");
        String str2 = new String("World");

        // 새로 배우는
        StringBuffer buffer1 = new StringBuffer(str1);


        System.out.println("수정 전 : " + System.identityHashCode(buffer1));

        // Buffer1 에 값을 수정해보자
        buffer1.append(str2);
        buffer1.append("111");
        buffer1.append("222");

        System.out.println("수정 후 : " + System.identityHashCode(buffer1));

        // 이전 버전 hashCode(); 해당 객체의 유일성 보장하는 정수 값
        // API 8 버전에서는 buffer1.toString() 해야 값을 확인 할 수 있다.

        //StringBuffer 데이터 타입을 String 으로 형 변환 하려면 .toString()호출하면 된다.
        System.out.println(buffer1.toString());

        String result = buffer1.toString();
    }
}