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