Programming/Java2013. 10. 26. 19:07

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 생성



Posted by Brian B. Lee