14일차 강의 정리


StringBuffer 클래스 (StringBuilder도 동일)

*StringBuffer 와 StringBuilder의 차이점 : StringBuffer 는멀티 쓰레드 상태에서 동기화를 지원

1. 소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Ex01 {
    public static void main(String[] args) {
        //String Buffer 클래스
        StringBuffer sb =new StringBuffer("java");
        StringBuffer sb2 = sb.append("World");        //sb에 붙여서 sb2 새로선언
        sb.append("자바");                            //sb에 추가
        
        System.out.println(sb2);
        System.out.println("--------------------");
 
        //StrtingBuffer 와 비교
        String st = new String("java");
        String st2 = st.concat("World");              //st에 붙여서 st2 새로선언
        st.concat("자바");                            //st에 추가
 
        System.out.println(st2);
        System.out.println("--------------------");
    }//main end
}//class end
cs

결과

2. append()

1
2
sb.append(new char[]{'a','b','a'});
sb.append(123456);
cs

결과

3.  insert()

1
sb.insert(4"월드");        //4번째 글자뒤에 추가
cs

결과

4. replace() - 변경

1
sb.replace(46" world ");    //4번째에서 6번째 까지의 글자를 "__"로 변경
cs

결과

5. reverse() 

1
sb.reverse();                //거꾸로 출력
cs

결과

6. replace() - 삭제

1
sb.replace(911"");        //"바자" 를 지워
cs

결과

7. delete() - 6.과 동일

1
sb.delete(911);
cs



초기 버퍼 할당량 = 16

1
2
StringBuffer sb2 = new StringBuffer();
System.out.println("sb2 size: "+sb2.capacity());    //할당된 버퍼 사이즈 (기본:16)
cs

결과

소스

1
2
3
4
5
6
7
sb2.append("abc12");        //추가해줘도 16까지는 버퍼 사이즈는 변경되지않는다
sb2.append("abc12");
sb2.append("abc12");
sb2.append("a");        //17자가되면 버퍼 사이즈는 34(17*2)가 된다
    
System.out.println("------------------------");
System.out.println("sb2 size: " + sb2.capacity());    //할당된 버퍼 사이즈 (기본:16)
cs

결과

소스

1
2
3
4
5
6
7
sb2.append("abc12");        //추가해줘도 16까지는 버퍼 사이즈는 변경되지않는다
sb2.append("abc12");
sb2.append("abc12");
sb2.append("ab");        //17자가되면 버퍼 사이즈는 34(17*2)가 된다
    
System.out.println("------------------------");
System.out.println("sb2 size: " + sb2.capacity());    //할당된 버퍼 사이즈 (기본:16)
cs

결과

소스(16+초기값 버퍼 길이)

1
2
StringBuffer sb3 = new StringBuffer("abc");        //초기값 버퍼 길이 19(16+3)
System.out.println("sb3 size: "+sb3.capacity());
cs

결과

소스(앞뒤 공간 제거)

1
sb3.trimToSize();    //앞뒤공간 제거해서 버퍼 사이즈는 3으로 변경
cs

결과

소스(메모리 할당)

1
2
3
4
System.out.println("------------------------");
StringBuffer sb4 = new StringBuffer();
sb4.ensureCapacity(20);        //내가 원하는 메모리 할당량(디테일하게는 x)
System.out.println(sb4.capacity());
cs

결과


'* Programming > JAVA' 카테고리의 다른 글

DAY15 String " "기준으로 불러오기  (0) 2016.07.25
DAY14 Lotto(객체지향)  (0) 2016.07.25
DAY13 주민등록번호로 신분확인  (0) 2016.07.21
DAY13 String 2  (0) 2016.07.21
DAY13 String 1  (0) 2016.07.21

+ Recent posts