2021. 3. 16. 15:19ㆍJAVA 공부
StringBuffer
이번에는 StringBuffer 에 대해 알아 봅니다
StringBuffer 는 String의 단점을 보완한 데이터타입(클래스) 입니다.
String은 처음 초기화 된 데이터의 변화가 생기면 (변경) 이미 있는 객체에 값을 변경시키는 게 아닌, 새로운 객체를 만듭니다. 그렇기 때문에, 만약 10000번의 문자열 변경이 이루어 진다면, 10000개의 객체를 가지고 있는 셈이 되는거죠
이러한 단점을 보완하기 위해서 나온게 StringBuffer , StringBuilder 입니다.
StringBuffer 와 StringBuilder 의 기능은 같지만, StringBuffer 가 더 안정성이 높기 때문에 StringBuffer를 사용한다고 해요
그리고 StringBuffer 는 String에 있는 기능들을 거의 사용할 수 있습니다.
그러면 이제, StringBuffer 의 기능들을 알아 보도록 하죠
- append(String str) -> 문자열 추가
- insert(int offset, String str) -> 문자열 충간에 추가
- delete(int start, int end) -> 문자열 삭제
- replace(int start, int end, String str) -> 문자열 변경
- reverse() -> 문자열을 거꾸로 변경
- String 형태로 변경하기
이렇게 stringBuffer 의 메서드 들에 대해 조금 알아 보았는데요.
이번에 알아 본 메서드로 어제 만든 퀴즈 회문 을 고쳐 봅시다
먼저 공백을 지워주는 건 똑같은데
StringBuffer 의 reverse 를 이용해서 거꾸로 뒤집어 주고....
String 형으로 다시 바꿔 줍니다. ( 비교할 대상이 String 이기 때문에, 데이터 타입을 일치 시켜 주기 위해서 )
그 후 equals를 통해 문자열을 비교해 줍니다.
String 과 StringBuffer 의 속도 비교
이렇게, 반복문을 돌려서 확인을 해보게 되면, 객체를 생성하는 String 은 속도가 좀 더 걸리고
객체를 생성하지 않는 StringBuffer는 비교적 더 빠르게 돌아갑니다.
값의 변환을 10개, 100개 하는 정도로는 속도 차이가 그렇게 크지 않으니, String을 써도 상관은 없으나
값의 변환이 자주 일어날 것 같은 경우에는 StringBuffer 를 써 주는게 좋겠습니다.
'JAVA 공부' 카테고리의 다른 글
Day22 - Date, Calendar, Random, StringTokenizer (0) | 2021.03.17 |
---|---|
Day21 - Math , Wrapper, Arrays (0) | 2021.03.16 |
Day21 - 외부라이브러리 추가 (0) | 2021.03.16 |
Day20 - String (0) | 2021.03.15 |
Day19 - API - java.lang 패키지 (1) | 2021.03.12 |