안녕하세요 블로그 쥔장입니다 .
오늘은 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 이미지
'IT > JAVA' 카테고리의 다른 글
프로그래밍 메소드 오버라이딩(overriding) (0) | 2017.05.24 |
---|---|
메소드 오버로딩 (method overloading) (0) | 2017.05.23 |
모든 클레스의 조상 Object 에 대해 알아보자 (0) | 2017.05.19 |
자바 문자열 클레스 String (0) | 2017.05.18 |
객체지향언어 (자바) (0) | 2017.05.15 |