on
StringBuffer, StringBuilder 클래스
StringBuffer, StringBuilder 클래스
반응형
문자열을 저장하는 String은 내부의 문자열을 수정할 수 없다.
예를 들어 String의 resplace() 메소드는 내부의 문자를 대치하는 것이 아나라
대치된 새로운 문자열을 리턴,
String 객체를 + 연산할 경우도 마찬가지
-> 문자열을 결합하는 + 연산자를 많이 사용하면 할수록 그만큼 String 객체의 수가 늘어나기 때문
프로그램 성능을 느리게 하는 요인이 된다
문자열을 변경하는 작업이 많을 경우에는 String 클래스를 사용하는 것 보다
java.lang 패키지의 StringBuffer, StirngBuilder 클래스를 사용
내부 버퍼(buffer : 데이터를 임시로 저장하는 메모리) 에 문자열을 저장
추가, 수정, 삭제 작업을 할수 있도록 설계
String 처럼 새로운 객체를 만들지 않고도 문자열을 조작
StringBuffer와 StringBuilder 의 사용 방법은 동일
차이점은 StringBuffer 는 멀티 스레드 환경에서 사용할 수 있도록 동기화가 적용, 스레드에 안전
StringBuilder는 단이 스레드 환경에사만 사용하도록 설계
StringBuilder 클래스는 몇가지 생성자를 제공
기본 생성자 StringBuider()는 16개의 문자들을 저장할 수 있는 초기 버퍼를 만듬
StirngBuilder(int capacity) 생성자는 capacity로 주어진 개수만큼 문자들을 저장할 수 있는 초기 버퍼를 만듬
StringBuilder는 버퍼가 부족할 경우 자동으로 버퍼 크기를 늘리기 때문에 초기 버퍼의 크기는 그다지 중요 X
StringBuilder(String str) 생성자는 str 로 주어진 매개값을 버퍼의 초기값으로 저장
메소드 설명 append(..) 문자열 끝에 주어진 매개값을 추가 insert(int offset, ...) 문자열 중간에 주어진 매개값을 추가 delete(int start, ine end) 문자열의 일부분을 삭제 deleteChaerAt(int index) 문자열에서 주어진 index의 문자를 삭제 replace(int Start, int end,Stirng str) 문자열의 일부분을 다른 문자열로 대치 reverse() 문자열의 순서를 뒤바꿈 setCharAt(int index, char ch) 문자열에서 주어진 index의 문자를 다른 문자로 대치
append() 와 insert() 메소드는 매개 변수가 다양한 타입으로 오버로딩 되어 있기 때문에
대부분의 값을 문자로 추가또는 삽입 가능 하다
반응형
from http://ho-log.tistory.com/91 by ccl(A) rewrite - 2021-10-24 17:27:12