StringBuffer, StringBuilder 클래스

bbangho·2023년 9월 21일
0

java

목록 보기
10/12

StringBuffer

String 클래스는 인스턴트를 생성할 때 지정된 문자열을 변경할 수 없지만 StringBuffer클래스는 변경이 가능하다. 내부족으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있으며 생성할때 크기 조정이 가능하다.

char형 배열의 참조변수를 인스턴스변수로 선언해 놓고 있다.

	public final class StringBuffer {
    	private char[] value;
    }

생성할때 크기를 지정해 주지 않으면 버퍼의 크기는 16이고
문자열을 넣어주면 문자열의 크기 + 16 이 된다

자바 공식문서에서 확인해보자.
https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/lang/StringBuffer.html#%3Cinit%3E()

StringBuilder

StringBuffer와 거의 비슷하다. StringBuffer는 멀티쓰레드에 안전하도록 동기화되어 있다.동기화가 StringBuffer의 성능을 떨어트린다.
StringBuffer에서 쓰레드의 동기화만 뺀 StringBuilder가 새로 추가되었다.


StringBuffer 멀티쓰레드에 안전하도록 동기화되어있음 StringBuilder 쓰레드의 동기화만 빼서 만들었다. 하지만 StringBuffer의 성능도 충분히 좋기 때문에 굳이 StringBuilder로 바꿀 필요는 없다.

profile
2024. 06.17

0개의 댓글