컴퓨터는 CPU의 종류에 따라서 데이터를 표현하는 크기가 다르다.
String 객체는 Immutable
String의 내용이 변경되는 경우 기존의 값이 변경되는 것이 아니라 새로운 인스턴스가 생성
같은 내용의 문자열은 기존에 생성되었던 인스턴스를 재사용하게 되므로 같은 인스턴스를 가리킴
String str1 = "Hello";
String str2 = str1 + " World";
System.out.println(str1 == str2); // false
String str3 = "Hello";
System.out.println(str1 == str3); // true
일부 Wrapper 클래스 또한 Immutable 객체처럼 동작
Integer i1 = 42;
Ineger i2 = 42;
System.out.println(i1 == i2); // true
하지만 일정 범위의 값에 대한 인스턴스를 미리 만들어두고 재사용하는 것으로, 그 범위를 벗어나면 객체 재사용을 하지 못함
Integer i3 = 100000;
Integer i4 = 100000;
System.out.println(i3 == i4); // false