IT 개발노트

java.lang 패키지(StringBuffer클래스) 본문

기초튼튼/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클래스의 생성자와 메서드

'기초튼튼 > JAVA' 카테고리의 다른 글

@JsonCreator 사용 이유  (0) 2024.02.06
컬렉션 프레임웍  (0) 2019.07.05
java.lang 패키지(String클래스)  (0) 2019.07.05
java.lang 패키지(Object클래스)  (0) 2019.07.04
예외처리  (0) 2019.07.04