• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

static 과 metaspace 관련 질문있습니다.

22.12.27 11:16 작성 22.12.27 11:24 수정 조회수 499

0

자바 8 이후, permgen이 metaspace로 대체되면서 static과 string 상수 풀이 heap 영역에서 관리되는 것으로 변경되었다고 알고 있습니다.

 

하지만 실제로 구글등과 각종 유튜브 설명들을 찾아본 결과 해당 내용을 서로 다른 두 가지 내용으로 설명하여 어떤 것이 맞는지 몰라 이렇게 질문드리게 되었습니다.(위의 사진은 static 변수가 method 영역에 속한다고 함)

첫번째 설명입니다.

jdk의 설명중 class statics를 static object로 번역하여, static 변수와 메서드는 Method 영역(metaspace)에 이전과 동일하게 있고 static object(static A a = new A();)들만 heap으로 이동했다.

 

두번째 설명입니다.

static이 붙은 모든 static 변수(primitive 타입, static int a = 1;)과 static 메서드, static object 등이 모두 heap 영역으로 이동했다.

 

둘 중 어느 설명이 맡는 것인지 질문드리고 싶습니다.

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!