
[Java] String은 왜 불변(Immutable)할까? String Pool, intern(), 생성 방식까지 완벽 정리
·
BackEnd/JAVA
자바에서 문자열을 다룰 때 가장 많이 사용하는 타입은 단연 String입니다. 하지만 여러분은 다음과 같은 코드에서 의문을 가져본 적 없으신가요?String s1 = "Cat";String s2 = "Cat";String s3 = new String("Cat");System.out.println(s1 == s2); // trueSystem.out.println(s1 == s3); // false위 코드에서 s1 == s2는 true이고 s1 == s3는 false라는 결과가 나옵니다. 도대체 무슨 일이 일어난 걸까요?이번 글에서는 Java에서 String이 어떻게 동작하고, 왜 불변(Immutable)하게 설계되었는지, 그리고 메모리 구조, 성능, 보안 측면에서 어떤 이점이 있는지 하나씩 정리해보겠습니다..