Java - 면접질문(JVM)

면접 대비를 해보자

Posted by Yan on September 29, 2021

JVM (Java Virtual Machine)

  • 스택 기반의 가상 머신
  • 자바 애플리케이션은 클래스 로더를 통해 읽어들여 자바 API와 함께 실행한다.
  • Java가 OS에 구애받지 않고 재사용 가능하게 해준다.
  • 메모리 관리, Garbage Collection을 수행한다.
  • 자바 바이트 코드를 실행할 수 있는 주체다.

자바 프로그램 실행 과정

  1. 프로그램이 실행되면 JVM은 OS로부터 프로그램이 필요로하는 메모리를 할당받는다. JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.
  2. 자바 컴파일러 javac가 자바 소스 코드를 읽어들여 자바 바이트 코드 .class로 변환시킨다.
  3. Class Loader를 통해 class 파일들을 JVM으로 로딩한다.
  4. 로딩된 class 파일들은 Execution Engine을 통해 해석된다.
  5. 해석된 바이트코드는 Runtime Data Area에 배치되어 실질적인 수행이 이루어지게 된다. 이 실행과정 속에서 JVM은 필요에 따라 Thread Synchronization과 GC같은 관리 작업을 수행한다.