작성
·
646
·
수정됨
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 영역으로 이동했다.
둘 중 어느 설명이 맡는 것인지 질문드리고 싶습니다.
답변