입력받을 데이터가 진짜 문자열일 때에만 파일, 네트워크, 키보드 입력으로 데이터를 받을 때 문자열을 사용하는 것이 좋다. = 기본 타입이든 참조 타입이든 적절한 값 타입이 있다면 그것을 사용하고, 없다면 새로 하나 작성해야 한다.
상수를 열거할 때는 문자열보다 열거 타입이 월등히 낫다 (아이템 34)
여러 요소가 혼합된 데이터를 하나의 문자열로 표현하는 것은 대체로 좋지 않은 생각이다.
String compoundKey = className + "#" + i.next();
//#이 두 요소 중 하나에서 쓰였다면 혼란스러운 결과 야기
//각 요소 개별 접근하려면 문자열 파싱해야 함 -> 느리고 귀찮고 오류 가능성 커짐
//equals, toString, compareTo 메서드 제공 불가능, String 제공하는 기능에만 의존해야함
권한을 문자열로 표현하는 경우 - ex) 스레드 지역변수 기능 설계 (각 스레드가 자신만의 변수 갖게 해주는 기능)
→ 자바 2 이전에는 프로그래머가 직접 구현해야 했음
스레드 구분용 문자열 키가 전역 이름 공간에서 공유된다.