2016-03-31

14. java - StringBuilder & StringBuffer 클래스

* StringBuilder / StringBuffer
  - 변경이 가능한 문자열을 표현하기 위한 클래스
  - 두 클래스의 인스턴스는 문자열이 아님!


StringBuilder


- 문자열 저장, 수정을 위한 메모리 공간(버퍼)를 가지고 있으며 이 크기는 자동 조절됨
* 크기 조절하기 위해 사용되는 대표적 생성자   
   ( ... 되도록 버퍼 크기를 미리 할당해 놓는 것이 효율적이다)

1) public StringBuilder() 
    : 16개 문자 저장 버퍼 생성, 추가적인 문자 저장에 따라 크기 자동 증가

2) public StringBuilder(int n)
    : 넘겨받은 수(n)만큼 문자 저장 버퍼 생성

3) public StringBuilder(String str)
    : 넘겨받은 문자열의 길이 + 16 개 문자 저장 버퍼 생성

 * 중요한 메소드
  1) append : 넘겨받은 값을 StringBuilder의 인스턴스 내의 문자열 끝에 문자 형태로 추가
  2) insert : 첫번째 매개변수는 인스턴스 내의 문자열에서의 위치(0부터 시작)
               두번째 매개변수는 문자 형태로 저장하려는 데이터 

ex)
public class ExStringBuilder
{
    public static void main(String[] args) 
    {
        StringBuilder strBuf1 = new StringBuilder("AAA");
        strBuf1.append("BBB");
        strBuf1.append(22);
        strBuf1.append('!');
        System.out.println(strBuf1);  //AAABBB22! 출력
        
        StringBuilder strBuf2 = new StringBuilder("ABCDEF");
        strBuf2.insert(1"MM");
        System.out.println(strBuf2);  //AMMBCDEF 출력
        strBuf2.insert(522);
        System.out.println(strBuf2);  //AMMBC22DEF 출력
    }
}



StringBuffer ... StringBuilder 클래스와 거의 동일
  1) 메소드 수(+생성자)  2) 메소드 기능  3) 메소드 이름과 매개변수 가 동일

* 차이 : StringBuffer는 Thread에 안전 
           StringBuilder는 Thread에 안전하지 못함


           

댓글 없음 :

댓글 쓰기