변수에 문자열 할당

hashin·2023년 5월 31일

JAVA

목록 보기
10/19
String arg1 = new String("HI");
String arg2 = new String("HI");

// arg1 == arg2 >> false;

String arg3 = "HI";
String arg4 = "HI";

// arg3 == arg4 >> true;

String arg = "HI";와 String arg = new String("HI");는 결과적으로는 동일한 문자열을 변수 arg에 할당하는 방법입니다. 그러나 내부적으로는 다른 동작을 수행합니다.

String arg = "HI";

: 이 방법은 문자열 리터럴을 직접 할당하는 것입니다. "HI"라는 문자열은 상수 풀(Constant Pool)에 저장되어 있습니다. 따라서 새로운 String 객체를 생성하지 않고, 상수 풀에서 해당 문자열을 참조하여 변수 arg에 할당합니다.

String arg = new String("HI");

: 이 방법은 new 키워드를 사용하여 새로운 String 객체를 생성하는 것입니다. "HI"라는 문자열은 새로운 객체로 할당되며, 힙 메모리에 저장됩니다. 변수 arg는 이 새로운 객체를 참조합니다.

두 방법 모두 변수 arg에는 "HI"라는 문자열을 값으로 가지는 String 객체의 참조가 저장됩니다. 그러나 리터럴을 직접 할당하는 첫 번째 방법이 일반적으로 더 선호됩니다. 이는 문자열 리터럴이 상수로 취급되어 재사용되고, 불필요한 객체 생성을 피할 수 있기 때문입니다.

따라서 String arg = "HI"; 방법을 사용하는 것이 권장됩니다.

0개의 댓글