• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

String관련 질문입니다

22.11.04 22:11 작성 조회수 175

0

안녕하세요 강의를 너무 잘 듣고 있습니다.

다름이 아니라 String 강의를 듣다 질문이 있어 글을 남깁니다.

String str1 = new String("APPLE");

String str2 = str1;
str1 = "apple"
System.out.println(str2);

위와 같이 실행하게 되면 왜 APPLE가 출력 되는지 이해가 가질 않습니다. str1의 번짓수와 str2의 번짓수가 같기 때문에 달라질 것이라고 생각했습니다.

답변 1

답변을 작성해보세요.

0

처음 str1에 "APPLE"번지수가 100번지 라면 str2에도 100번지가 들어있겠죠. 그런데 다시 str1에 "apple"을 넣어버리면 str1의 번지가 다른 번지 즉 200번지를 가리키게 됩니다

이후에 str2에는 여전히 100번지에 있는 "APPLE"이 출력되겠죠? 이해되셨을까요

 

열심맨님의 프로필

열심맨

질문자

2023.01.16

str1 ="apple"; 를 하게되면 str1은 Literal Pool의 번지를 가리키게 되는 것인가요?

네 그렇습니다.~~