2016년 4월 29일 금요일

string vs stringbuilder vs stringbuffer

String
String 값의 비교(==, equals, compareTo, Collator 클래스)
1. ==                        -> 값과 상관없이 같은 오브젝트인지 확인
2. equals                    -> 값이 같은지 확인
3. compareTo              -> int 값 반환 (같으면 0 다르면 크기에 따라 음수와 양수로 나누어짐)
4. Collator클래스          -> 자연어를 비교하여 순서 매길 때

StringBuffer       vs        StringBuilder
스레드  안전                          단일 스레드에서만 보장
속도  String보다 완전빠름        StringBuffer보다 좀 더 빠름
메모리  String보다 완전적음       StringBuffer와 같음

이유 = String의 경우 + 연산을 할때마다 세로운 주소지에 더해진 String 값을 저장한다. 하지만 StringBuffer와 StringBuilder의 경우 처음 주소지에 값만 추가된다.새로 메모리를 할당하고 값을 옮겨갈 필요가 없다.

비교
- String은 짧은 문자열을 더할 경우 사용한다.
- StringBuffer는 스레드에 안전한 프로그램이 필요할 때나, 개발 중인 시스템의 부분이 스레드에 안전한지 몰르 경우 사용하면 된다.
- StringBuilder는 스레드에 안전한지 여부가 전혀 관계 없는 프로그램을 개발할 때 사용하면 좋다.

생성자
- StringBuffer()                            => 기본 용량 16개의 char 이다.
- StringBuffer(CharSequence seq)  => CharSequence는 CharBuffer, String, StringBuffer, StringBuilder의 인터페이스이며 생성된 StringBuffer는 실재로 seq에 대한 값을 갖는다.
- StringBuffer(int capacity)               => capacity = 용량
- StringBuffer(String str)                  => str 값을 갖는 StringBuffer 생성

댓글 없음:

댓글 쓰기

언제까지의 개인정보처리방침

1. 개인정보의 처리 목적 언제까지 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는...