CS/Java

JAVA - 문자열 선언

빈둥벤둥 2021. 2. 27. 17:55

문자열 선언


리터럴로 문자열 할당

String str1 = "abcd";
String str2 = "abcd";
  • 상수풀에 문자열이 할당되며 같은 데이터가 존재하면 해당 데이터의 주소를 참조한다.
  • 리터럴로 할당된 문자열은 == 연산을 할 수 있다. 즉, 위와 같은때 str1 == str2는 true가 된다.

 

객체로 문자열 할당

String str1 = new String("abcd");
String str2 = new String("abcd");
  • 메모리의 heap영역에 새로운 영역을 할당한다.
  • 객체로 할당된 문자열은 서로 다른 주소값을 가지기 때문에 == 연산으로 내용이 같은지 확인할 수 없다.

 

reference

velog.io/@hygoogi/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%AA%A8%EC%9D%8C

madplay.github.io/post/java-string-literal-vs-string-object