StringBuffer 클래스
- String 처럼 문자형 배열(char[])을 내부적으로 가지고 있다.
public final class StringBuffer implements java.io.Serializable { private char[] value; // 여러 문자 저장가능 }
- 그러나, String과 달리 내용을 변경할 수 있다.(mutable)
↳ append()는 지정된 내용을 StringBuffer에 추가 후, StringBuffer의 참조를 반환한다.
↳ 본인의 주소 반환
StringBuffer의 생성자
- 배열은 길이 변경불가. 공간이 부족하면 새로운 배열 생성해야함
1) 새로운 배열 생성
2) 내용 복사
3) 참조 변경- StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야함
StringBuffer의 비교
- StringBuffer는 equals()가 오버라이딩 되어있지 않다.(주소비교 한다)
↳ String은 오버라이딩 되어있어서 내용비교함- StringBuffer를 String으로 변환 후에 equals()로 비교해야 한다.
String s = sb.toString(); // sb를 String으로 변환 String s2 = sb2.toString(); System.out.println(s.equals(s2)); // true