키보드워리어

[자바] 참조자료형 - StringBuffer와 StringBuilder의 차이 - 4 본문

JAVA/입문

[자바] 참조자료형 - StringBuffer와 StringBuilder의 차이 - 4

꽉 쥔 주먹속에 안경닦이 2023. 1. 29. 11:35
728x90

기존 String의 단점

기존 String의 경우 인스턴스 참조타입을 만들 때 단점이 하나 있습니다.

String의 연산
String의 연산

이런 스트링을 만든다고 가정할때 하나하나의 스트링에 인스턴스 참조타입을 만들어주어야 합니다.

4개의 기본 String을 더하는 연산 3개와 이후에 합 총 7번

 

객체를 생성하는 게 많아지는 것은 나중에 프로그래밍할 코드들이 많아진다면 속도에 영향을 미치기 때문에 StringBuffer라는 클래스가 필요 해지는 겁니다.

 

StringBuffer

 

StringBuffer클래스는 자바에서 스트링을 생성할 수 있는 또 다른 클래스입니다.

String처럼 간단하진 않지만요.

 

StringBuffer소개
StringBuffer소개

StringBuffer는 String처럼 기본형으로 쓸 수 없고 인스턴스로 만들어 주어야 해요.

하지만 String과 달리 수정이 가능하죠. append()메서드는 추가, setCharAt(integer,char)메서드로 수정이 가능하죠.

 

 

StringBuilder

 

StringBuilder의 경우는 최근에 나온 클래스입니다. 사용하는 양식은 StringBuffer와 크게 차이가 없어요.

 

둘의 차이는 StringBuilder는 싱글스레딩으로 멀티스레딩이 불가합니다.

 

스레딩에 대해서는 다음에 살펴보겠습니다.

StringBuffer는 멀티스레딩으로 페널티가 있다는 뜻이며 싱글스레딩의 경우 복잡한 사항이 없는데

StringBuffer는 속도가 매우 느려질 수 있습니다.

728x90