반응형 Study/Java2 [Java] String Pool 저장 조건 Java는 메모리 공간을 절약하기 위해 Heap 영역에 String Pool 영역을 만들고, 이 영역에 Constant 문자열을 저장한다. 그런데 이 String Pool 영역에 들어가는 조건이 애매하다. 예를 들어, 아래의 s2, s3, s4는 비슷해보이만 다른 결과가 나온다. String s1 = "abc1"; // String Pool에 저장됨 int i = 1; final int j = 1; String s2 = "a" + "bc" + 1; // s1 == s2: true String s3 = "a" + "bc" + i; // s1 == s3: false String s4 = "a" + "bc" + j; // s1 == s4: true 이유가 뭘까? String이 String Pool에 저장되는 .. 2023. 2. 8. [Java] String + 연산 원리와 성능 비교 개발하던 중 갑자기 String의 + 연산이 어떻게 되는지 궁금해져 찾아봤다. String + 연산 동작원리, StringBuilder, StringBuffer와의 성능 차이에 대해 알아보자. String + 연산 동작원리 String의 +연산은 컴파일 타임에 new StringBuilder.append.toString으로 변환된다. 따라서 아래의 두 코드는 동일하다. String s1 = ""; for(int i=1; i 2023. 2. 8. 이전 1 다음 반응형