String a = "a";
String b = "b";
a = a + b;
0x100번지의 "a"가 바뀌는 것이 아니라 / 새로운 0x300번지에 값을 담고 a는 0x300을 가리키게 된다.
String str1 = "abc"; // 문자열 리터럴. "abc"의 주소가 str1에 저장
String str2 = "abc"; // 문자열 리터럴. "abc"의 주소가 str2에 저장
String str3 = new String("abc"); // 새로운 String 인스턴스 생성
String str4 = new String("abc"); // 새로운 String 인스턴스 생성
문자열은 내용 변경이 불가하기 때문에, 오른쪽 그림과 같이 새로운 객체를 만들 필요 없다.
String str = ""; // 빈 문자열로 초기화
char[] chArr = new char[0]; // 길이가 0인 char 배열
int[] iArr = {}; // 길이가 0인 int 배열
왼쪽 방식말고 오른쪽 방식으로 구현하자.