JVM 기본 구조 및 수명주기

JVM 기본 구조 및 수명주기

Java 가상 머신은 Java 바이트 코드를 실행하는 가상 컴퓨터로 독립적 인 운영 메커니즘을 가지고 있으며 실행되는 Java 바이트 코드는 Java 언어에서 컴파일되지 않을 수 있습니다. JVM 플랫폼의 다양한 언어는 Java 가상 머신에서 가져온 크로스 플랫폼, 우수한 가비지 수집기 및 안정적인 Just-In-Time 컴파일러를 공유 할 수 있습니다.

JVM 단순 아키텍처
여기에 사진 설명 삽입
JVM 전체 아키텍처
여기에 사진 설명 삽입

Java 가상 머신의 역할 :

  • Java 가상 머신은 2 진 바이트 코드의 운영 환경으로, 바이트 코드를로드하고 해당 플랫폼에서 머신 명령어를 실행하도록 해석 / 컴파일합니다. 각 Java 명령어에 대해 피연산자를 가져 오는 방법, 피연산자를 처리하는 방법 및 처리 결과를 배치 할 위치와 같은 Java Virtual Machine 사양에 자세한 정의가 있습니다.

JVM 기능 :

  • 한 번 컴파일하고 어디에서나 실행
  • 자동 메모리 관리
  • 자동 가비지 수집 기능

JVM 아키텍처 모델 : Java 컴파일러가 입력하는 명령어 스트림은 기본적으로 스택 기반 명령어 세트 아키텍처입니다.

스택 기반 아키텍처의 특징 :

  • 리소스가 제한된 시스템에 적합한 단순한 설계 및 구현
  • 레지스터 할당 문제 방지 : 제로 주소 명령 방법을 사용하여 할당하십시오.
  • 명령어 스트림의 대부분의 명령어는 주소가 0 인 명령어이며 실행은 작업 스택에 따라 다릅니다. 명령어 세트가 더 작고 컴파일러는 구현하기 쉽습니다.
  • 하드웨어 지원, 더 나은 이식성, 더 나은 크로스 플랫폼이 필요하지 않습니다.

프로그램 JVM 라이프 사이클 컴파일 및 실행
여기에 사진 설명 삽입

가상 머신 시작

  • Java 가상 머신의 시작은 가상 머신의 특정 구현에 의해 지정된 부트 스트랩 클래스 로더에 의해 초기 클래스를 작성하여 수행됩니다.

가상 머신 실행

  • 실행중인 Java 가상 머신에는 Java 프로그램 실행이라는 명확한 작업이 있습니다.
  • 프로그램이 시작되면 실행되고 프로그램이 종료되면 중지됩니다.
  • 소위 Java 프로그램을 실행할 때 실제로 실행되는 것은 Java Virtual Machine이라는 프로세스입니다.

가상 머신 종료

  • 프로그램 실행이 정상적으로 종료됩니다.
  • 프로그램 실행 중에 예외 또는 오류가 발생하여 비정상적으로 종료되었습니다.
  • 운영 체제 오류로 인해 JVM (Java Virtual Machine) 프로세스가 종료되었습니다.
  • 스레드는 Runtime 클래스 또는 시스템 클래스의 exit 메소드 또는 Runtime 클래스의 halt 메소드를 호출하고 Java 보안 관리자는이 종료 또는 중지 작업도 허용합니다.
  • 또한 JNI (Java Native Interface) 스펙은 JNI 호출 API를 사용하여 JVM (Java Virtual Machine)을로드하거나 언로드하는 경우 Java 가상 머신의 종료를 설명합니다.

추천

출처blog.csdn.net/qq_33626996/article/details/112153709