작성한 질문수
Java TPC (생각하고, 표현하고, 코딩하고)
문자열(String)이 객체라고요?
작성
·
282
0
안녕하세요 강의를 너무 잘 듣고 있습니다.
다름이 아니라 String 강의를 듣다 질문이 있어 글을 남깁니다.
String str1 = new String("APPLE"); String str2 = str1; str1 = "apple" System.out.println(str2);
위와 같이 실행하게 되면 왜 APPLE가 출력 되는지 이해가 가질 않습니다. str1의 번짓수와 str2의 번짓수가 같기 때문에 달라질 것이라고 생각했습니다.
답변 1
처음 str1에 "APPLE"번지수가 100번지 라면 str2에도 100번지가 들어있겠죠. 그런데 다시 str1에 "apple"을 넣어버리면 str1의 번지가 다른 번지 즉 200번지를 가리키게 됩니다
이후에 str2에는 여전히 100번지에 있는 "APPLE"이 출력되겠죠? 이해되셨을까요
str1 ="apple"; 를 하게되면 str1은 Literal Pool의 번지를 가리키게 되는 것인가요?
네 그렇습니다.~~
str1 ="apple"; 를 하게되면 str1은 Literal Pool의 번지를 가리키게 되는 것인가요?