String과 래퍼 클래스는 왜 객체를 생성하지 않고 사용할 수 있을까?Java에서 String과 래퍼 클래스(Integer, Double, Boolean 등)는 객체 재사용을 위한 특별한 설계 덕분에 new 키워드를 사용하지 않고도 쉽게 사용할 수 있다. 이는 String Pool과 오토박싱 & 캐싱 기법 덕분이다.1. String Pool (문자열 상수 풀)String Pool은 JVM의 힙 메모리에서 특별한 영역으로, 동일한 문자열 리터럴을 공유하여 메모리를 절약하는 기법이다.String s1 = "hello";String s2 = "hello";System.out.println(s1 == s2); // true (같은 객체)"hello"는 String Pool에 저장되며, 동일한 문자열이 있으면 ..