인프런 커뮤니티 질문&답변

파이팅님의 프로필 이미지
파이팅

작성한 질문수

더 자바, 코드를 조작하는 다양한 방법

JVM관련해서 질문이 있습니다.

해결된 질문

작성

·

304

3

안녕하세요 선생님.

제가 이해 했는 부분이 정확한지 여쭤보고 싶어 질문드립니다.

1. 로딩을 하는 과정에서 '클래스 로더가 .class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고 “메소드” 영역에 저장'이 되는게 맞을까요 ? 로딩이 끝나면 해당 클래스 타입의 클래스 객체를 생성해서 힙영역에 저장 되는거구요.

2. Resolve는 .class 파일에서 필요한 자바 API의 이름만 지칭한것을 메모리상에서 실제로 존재하는 물리적인 주소로 대체되는 작업이라고 보면 될까요?

3. 로딩 > 링크 > 초기화 순이면 로딩과정에서 먼저 메소드영역에 데이터를 저장 한다음 링크에서 .class 파일을 검증(Verify)를 하는건가요 ? 

4. '클래스 로더가 .class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고 “메소드” 영역에 저장.' 이때 바이너리 데이터를 만들때는 인터프리터를 이용하는걸까요?

답변 1

1

백기선님의 프로필 이미지
백기선
지식공유자

네 모두 잘 이해하신것 같습니다. 좀 더 자세히 알고 싶으시면 아래 문서를 참고하시면 좋을것 같습니다.

https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html#:~:text=The%20Java%20Virtual%20Machine%20dynamically,interface%20from%20that%20binary%20representation.

 

파이팅님의 프로필 이미지
파이팅
질문자

감사합니다.

파이팅님의 프로필 이미지
파이팅

작성한 질문수

질문하기