• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

literal pool은 뭔가요?

20.05.30 05:40 작성 조회수 413

0

안녕하세요

장표에는 나와있는데 강의에서는 다루어지지 않아 질문드립니다

장표에는

문자열(객체)상수가 저장되는 영역

이라고 설명되어있는데

String str = "문자열";과 같이 String 객체를 생성하면 "문자열" 이 값이 literal pool에 저장된다는 건가요?

그리고 stack area에서 현재 실행중인 메소드가 str을 참조할때 저 literal pool에 저장된 값을 참조하게되는건가요?

답변 1

답변을 작성해보세요.

1

네~ 문자열 상수가 저장되는 메모리공간입니다. 문자열이 객체로 관리되기 때문에

String str="apple"; 이렇게 생성할때 사용되는 영역이라고 보면됩니다.

같은 방법으로 동일한 문자열을 생성하면 별도로 메모리가 확보되지 않고 기존 pool에 생성된 주소를 참조하게되어 재사용 하게됩니다.

한마디로 재사용 공간이라고 보시면되겠습니다. 그리고 만들어지는 변수 str은 스택에 만들어지고 pool을 참조하고 있는 형태로 이해하시면 될듯합니다.^^ 이해가 되셨는지요?

궁굼하신 것 있으시면 다시 질문주시구요.

완강까지 화이팅입니다.~~