안녕하세요 블로그 쥔장입니다 .

 

오늘은 String 친척인 StringBuffer 에 대해서 알아보겠습니다.

 

 

많은 분들이 String 을 사용합니다. 사용하기 편하거든요. 

 

하지만 단점이 있습니다. 메모리를 많이 잡아 먹습니다.  냠냠

 

String 을 가지고 문자열 편집을 할경우 계속 String 객체를 생성하기 때문에

 

가비지 컬렉터가 빨리 청소를 해야해서 리소스를 많이 사용합니다.

 

그럴때 유용한 클래스가 바로! StringBuffer 입니다.

 

 

StringBuffer 의 특징은 자체적으로 문자열 편집을 위한 buffer 를 가지고 있으며

 

편집할 문자열의 크기를 고려해 버퍼의 크기를 충분히 크게 잡아주는 것이 좋습니다.

 

편집중인 문자열이 버퍼의 크기를 넘어가는 순간!  버퍼를 늘려주는 작업이 자동으로 돌아가기

 

때문에 String 을 사용하나 별차이 없게되니 꼭!  문자열 크기의 4배정도로 잡아주세요 넉넉하게 ㅎ

 

 

StringBuffer의 생성자

 

public StringBuffer(int length){

 

 value=new char[length];    //지정 크기로 버퍼생성

 

}

 

public StringBuffer(){

 

 this(16);    //그냥 생성자를 사용하면 16의 크기로

 

}

 

public StringBuffer(String str){

 

this(str.length()+16);    //특정문자열을 넘기면 문자열크기+16의 크기로 버퍼 생성

append(str);

}

 

 

StringBuffer 사용시 주의점

 

String 은 equal() 메서드를 값비교를 하게 오버라이딩을 자체 적으로 구현해 놨지만

StringBuffer는 equal() 메서드를 값비교 하도록 오버라이딩 해야합니다.  (오버라이딩 안하면 ==연산과 같은 값을 반환합니다.)

 

 

 

StringBuffer 에  자주 사용되는 메서드

 StringBuffer append (기본타입들)

 매게 변수로 입력된 값을 스트링버퍼 뒤에 붙인다

 int capacity()

 버퍼의 크기를 반환

 StringBuffer delete(int s , int e)

 s 위치부터 e 위치까지 문자를 제거한다

 StringBuffer insert( int pos , 기본형)

 기본형을 받아서 문자로 변환후 pos 위치에 추가한다

 int length()

 StringBuufer에 저장되어있는 문자열의 길이를 반환

 StringBuffer replace(int s,int e, String str)

 s위치부터 e위치에 있는 문자를 str 로 변환한다

StringBuufer reverse()

 문자열의 순서를 거꾸로 나열한다.

 

 

 

 

 

 

오늘은 여기까지 ~ 다음에는 wrapper 클레스들에 대해서 알아보겠습니다.

 

 

 

Cover 이미지

 

+ Recent posts