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(4, 6, " world "); //4번째에서 6번째 까지의 글자를 "__"로 변경 | cs |
결과
5. reverse()
1 | sb.reverse(); //거꾸로 출력 | cs |
결과
6. replace() - 삭제
1 | sb.replace(9, 11, ""); //"바자" 를 지워 | cs |
결과
7. delete() - 6.과 동일
1 | sb.delete(9, 11); | 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 |