1. String - 새로운 값을 할당할 때 마다 새로 클래스에 대한 객체가 생성된다. - String 에서 저장되는 문자열은 private final char[] 의 형태이기 때문에 String 값은 변경할 수 없다. - String + String + String은 각각의 String 주소값이 Stack에 쌓이고 GC가 호출되기 전까지 생성된 String 객체들은 Heap에 쌓이기 때문에 메모리 관리에 치명적이다. 2. StringBuffer - 동기화 지원 - 각 메서드 별로 synchronized keyword가 존재한다. 3. StringBuilder - 동기화 미지원 - 동기화를 지원하지 않아 속도가 빠르다.