문자열을 저장하기 위한 클래스
String과 같이, 문자형 배열(char[])을 내부적으로 갖고 있음
String과 달리, 내용을 변경할 수 있음 (Mutable)
배열 : 길이 변경 불가. 공간이 부족할 시, 새로운 배열을 생성해야 함.
StringBuffer는 저장할 문자열 길이를 고려하여, 적절한 크기로 생성해야 함.
반환 타입이 StringBuffer임.
주의! StringBuffer는 equals()가 오버라이딩 되어있지 않음! (주소 비교)
그래서, String으로 변환한 후에 equals로 비교해야 한다.
public StringBuffer(int length) { // 적절한 길이 지정
value = new char[length];
shared = false;
}
public StringBuffer(){
this(16); // 크기 지정 안할 시, 길이 기본값 16
}
public StringBuffer(String str) {
this(str.length() + 16); // 지정한 문자열의 길이보다 16만큼 더 길게 버퍼 생성
append(str);
}
// 내용 변경 가능
StringBuffer sb = new StringBuffer("abc");
sb.append("123") // sb 내용 뒤에 "123" 추가 후 StringBuffer 참조 반환
// delete(), insert() 가 있음