• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

강의 질문드립니다.

22.09.20 16:17 작성 조회수 132

0

method Area의 설명으로 byte code가 저장되는 영역이라고 적어두셨는데 11강 강의 2분 29초쯤에는 method area에 main의 기계어코드가 기록된다고 하셨거든요... 기계어코드는 자바코드가 VM을 거치면서 인터프리터되면서 변형되는 코드 아닌가요..정확히 어떤 형식으로 기록되는걸까요? method area에 write될때 인터프리터과정이 거쳐져서 작성되는걸까요?

답변 1

답변을 작성해보세요.

1

자바는 컴파일러 언어입니다.
예를 들면)
Test.java가 컴파일 되면 Test.class(중간어 코드, byte code, 기계어 코드) 파일이 만들어 집니다.
(이클립스에서는 자동 컴파일이 됩니다.)
컴파일된 클래스(Test.class)가 실행시점에서 메모리(Method Area)에 로딩이 된다고 보시면 됩니다.

김종윤님의 프로필

김종윤

질문자

2022.09.20

말씀처럼 바이트 코드가 중간어 코드이므로 완전한 기계어코드가 아니지 않나요? 한번 더 JVM에 의해 변환될때 기계어로 되는 걸로 알고 있어서 바이트코드를 기계어 코드라고 불러도 문제가 없는지 여쭤봅니다.

정확히 말하면 다르다고 봐야겠죠. 메모리에 로딩된 시점에서는 기계어 코드로 로딩되기때문입니다. 구분해서 이해하시고 계시면 좋겠습니다~~

김종윤님의 프로필

김종윤

질문자

2022.09.27

답변 감사합니다 꾸벅