강의

멘토링

커뮤니티

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

김태우님의 프로필 이미지
김태우

작성한 질문수

[CS 기술면접 6] 말이 트이는 자바와 객체지향

JVM — 자바 가상머신의 구조와 실행 메커니즘

JVM - 자바 가상머신의 구조와 실행 매커니즘 2. 자바개요 부분에서 질문 있습니다.

작성

·

12

0

"JVM 설명 부분에서 자바 코드를 바이트 코드로 변환하여 실행하는 역할"이라고 설명 하셨는데,
그건 자바 컴파일러가 하는 역할 아닌가요 ?

바이트 코드를 기계어로 바꿔주는 것이 JVM이라고 알고 있는데, 헷갈려서 질문 남깁니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 김태우님.

김태우님이 질문하신 내용은 자바의 중요한 컴포넌트에 대한 것으로, 자바의 코드 실행 과정에서 발생할 수 있는 기혼란을 다룬 질문입니다.

자바 컴파일러와 JVM의 역할 차이:

  1. 자바 컴파일러 (javac):

    • 자바 소스 코드(.java 파일)를 컴파일하여 바이트 코드(.class 파일)로 변환합니다.
    • 이 바이트 코드는 플랫폼 독립적인 중간 코드로, 여러 운영 체제에서 실행할 수 있습니다.
  2. JVM (Java Virtual Machine):

    • 바이트 코드를 기계어로 변환하여 실제 실행하도록 돕는 역할을 합니다.
    • 이 과정에서 JVM은 특정 플랫폼에 맞는 최적화를 수행하여, 자바 프로그램이 다양한 플랫폼에서 동일하게 실행될 수 있도록 보장합니다.
    • JVM 내의 Just-In-Time 컴파일러(JIT)는 실행 중인 바이트 코드를 즉석에서 기계어로 변환하여 실행 성능을 향상시킵니다.

결론적으로, 자바 컴파일러는 자바 코드를 바이트 코드로 변환하고, JVM은 이 바이트 코드를 각 플랫폼에 맞게 기계어로 변환하여 실행합니다.

보다 자세한 설명이나 관련 정보에 대해서는, 아래의 구체적인 답변 링크를 참고하시길 권장드립니다:
- JVM, JDK, JRE의 차이
- 자바 프로그램의 실행 과정

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김태우님의 프로필 이미지
김태우

작성한 질문수

질문하기