StringBuilder는 변경 가능한, 즉 수정 가능한 연속 문자를 만드는 데 사용되는 클래스다.
StringBuffer와 마찬가지로Java Strings 클래스(불변 클래스)의 대안으로 사용된다. (가변 클래스이기 때문에 값을 변경할 수 있고 추가할 수 있다.)
StringBuffer와 StringBuilder의 차이점
동기화의 유무.
StringBuffer는 동기화 키워드를 지원하여멀티스레드 환경에서 안전하다.(thread-safe)
* String도불변성을 가지기 때문에 마찬가지로 멀티스레드 환경에서의 안정성(thread-safe)을 가지고 있다.
StringBuilder는 동기화를 지원하지 않는다.
그렇기 때문에 Java의 StringBuilder가 StringBuffer보다 빨라 단일 스레드로 작업할 때 더 적합한 선택임을 의미한다.
StringBuilder도 StringBuffer와 마찬가지로기본값은 16개의 문자를 저장할 수 있는 크기이며, 생성자를 통해 그 크기를 별도로 설정할 수도 있다.
하지만 객체 생성 시 사용자가 설정한 크기보다 언제나 16개의 문자를 더 저장할 수 있도록 여유 있는 크기로 생성된다.
▶capacity(): 할당된 문자 공간의 수. 빈 콘텐츠로 stringbuilder를 생성하려고 하면 기본적으로 초기화 크기를 0+16인 길이+16으로 사용한다. 따라서 기본 용량은 16. * 참고: capacity() 메서드에서 반환되는 용량은 항상 길이보다 크거나 같으며(일반적으로 보다 큼) 문자열 작성기에 추가할 수 있도록 필요에 따라 자동으로 확장된다. ▶length() : 문자열의 길이를 알고자 할 때 사용