기초튼튼/JAVA
java.lang 패키지(StringBuffer클래스)
limsungju
2019. 7. 5. 12:27
1. StringBuffer클래스
1.1 StringBuffer클래스의 특징
- String처럼 문자형 배열(char[])을 내부적으로 가지고 있다.
- String클래스와 달리 내용을 변경할 수 있다.(mutable)
- 인스턴스를 생성할 때 버퍼(배열)의 크기를 충분히 지정해주는 것이 좋다.
(버퍼가 작으면 성능 저하 - 작업 중에 더 큰 배열의 생성이 필요)
public StringBuffer(int length) {
value = new char[length];
shared = false;
}
public StringBuffer(String str) {
this(str.length() + 16);
append(str);
}
- String클래스와 달리 equals()를 오버라이딩하지 않았다.
StringBuffer sb = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.out.println(sb==sb2); // false
System.out.println(sb.equals(sb2); // false
String s = sb.toString();
String s2 = sb2.toString();
System.out.println(s.equals(s2); // true
--> StringBuilder클래스는 StringBuffer클래스와 동일한 기능을 수행하지만 한가지 차이점은 StringBuffer클래스는 동기화 처리가 되어있고, StringBuilder클래스는 동기화 처리가 안되어 있다.
즉, 멀티쓰레드를 사용할 때는 StringBuffer클래스, 싱글쓰레드를 사용할 때는 StringBuilder클래스를 사용한다.
1.2 StringBuffer클래스의 생성자와 메서드