Java에서 String은 불변(Immutable) 객체입니다. 이 불변 객체는 객체가 생성된 후 내부의 상태가 변하지 않고 계속 유지되는 객체로, 변수에 객체가 한 번 할당되면 해당 객체의 참조를 변경할 수도, 내부의 상태를 수정할 수도 없는 것입니다. 이를 immutable, '불변성'이라고 하는데, String을 불변 객체로 만든 이유에 대해 알아보겠습니다. 1. String Pool Java에서는 String Pool이라는 공간에 String을 포함시켜 매번 String 객체를 새로 생성하기보다 값이 같은 String이라면 String Pool에 있는 객체를 재사용할 수 있도록 구현했습니다. 이는 값이 같은 String은 String Pool 내에서 String 객체를 공유하도록 한 것이다. 이 ..