Juuunew 살아남기

[JAVA] JVM 01 - JVM이란? / JVM의 구조 본문

Language/JAVA

[JAVA] JVM 01 - JVM이란? / JVM의 구조

Juuunew 2023. 1. 10. 18:21

JVM ?

Java Virtual Machine의 줄임말로 자바 프로그램 실행환경을 만들어주는 소프트웨어이다.

JVM은 Java Application이 OS에 상관없이 실행할 수 있게 해준다. (플랫폼으로부터 독립적이게 만들어 줌)

 

🌟 자바 바이트 코드 ( .class )를 OS에 맞는 코드로 변환하여 실행해주는 역할.

자바 어플리케이션의 실행과정

  1. 자바 어플리케이션 실행
  2. JVM이 OS로부터 메모리를 할당받음 ( JVM은 할당받은 메모리를 용도에 따라 영역을 구분하여 관리 )
  3. 자바 컴파일러 ( javac )가 자바 소스코드( .java )를 읽어 바이트 코드( .class )로 변환
  4. 클래스 로더를 통해 변환된 바이트 코드를 JVM으로 로딩
  5. 로딩된 바이트 코드는 실행 엔진을 통해 해석됨
  6. 해석된 바이트 코드는 JVM 메모리 영역(Runtime Data Area)에 배치되어 실행됨

자바 프로그램의 실행과정 (출처 - https://www.tcpschool.com/java/java_intro_programming)

 


JVM의 구조

Java Virtual Machine의 내부 구성요소

JVM은 크게 아래와 같이 구성되어있다.

  • 클래스 로더 ( Class Loader )
  • 메모리 ( Runtime Data Area )
    • Method Area
    • PC ( Program Counter ) register
    • Native method stack
    • Stack
    • Heap
  • 실행 엔진 ( Execution Engine )
    • 인터프리터 ( Interpreter )
    • JIT 컴파일러 ( Just-in-Time Compiler )
    • 가비지 컬렉터 ( Garbage Collector )

👉 JVM02 - 클래스로더 포스팅 보러가기

 

💡 공부 중 정리하는 내용이므로 부족한 부분이 있을 수 있습니다.

 

💡 참고자료

 

자바 메모리 구조 - 어라운드 허브 스튜디오

블로그 1

 

[JAVA] ☕ JVM 내부 구조 & 메모리 영역 자세히 정리

저번 포스팅에서는 JRE / JDK / JVM에 대해서 간략하게 알아보는 시간을 가졌다면, 이번 포스팅에서는 JVM의 내부 구조에 대해 좀 더 자세하게 알아보도록 할 예정이다. JVM(자바 가상 머신)은 자바 언

inpa.tistory.com