StringBuffer & StringBuilder
StringBuffer class
String
처럼 문자형 배열 (char[]
) 을 내부적으로 가지고 있다.
- 내용 변경 가능
- 문자열의 길이를 고려해서 적절한 크기로 생성
equals()
오버라이딩 되어있지 않다.
String
으로 변환 후 equals()
로 비교
- 동기화 되어있다. (멀티 쓰레드에 안전)
StringBuffer method
sb.append("abc").append("efg");
append()
- 매개변수 값을 문자열로 변환 한 다음
- 끝에 문자열 추가
delete(int start, int end)
- 지정 범위 문자열 삭제
- start ≤ x < end
deleteCharAt(int index)
insert(int pos, )
- 매개변수를 문자열로 변환하여 지정한 위치에 추가
replace(int start, int end, String str)
- 지정된 범위의 문자를 주어진 문자열로 바꾼다.
- start ≤ x < end
reverse()
StringBuilder
- 멀티 쓰레드 프로그램이 아닌 경우, 동기화는 불필요한 성능 저하
- 싱글 쓰레드 프로그램에서는 StringBuffer 대신 StringBuilder 사용하면 성능 향상
- 서로 클래스 이름만 리펙터링하면 된다.