>Java >java지도 시간 >자바 가상 머신이란 무엇입니까? JVM에 대한 간략한 소개

자바 가상 머신이란 무엇입니까? JVM에 대한 간략한 소개

青灯夜游
青灯夜游원래의
2018-11-21 16:52:4823228검색

이 기사에서는 Java에서 JVM이 무엇인지 설명합니다. JVM이 수행할 수 있는 작업과 JVM의 역할을 모든 사람이 이해할 수 있도록 Java 가상 머신에 대한 간략한 소개입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

자바 가상 머신이란 무엇입니까? JVM에 대한 간략한 소개

JVM이란 무엇인가요?

JVM(Java Virtual Machine)은 Java 프로그래밍 언어의 핵심인 Java 바이트코드를 실행하는 가상 머신입니다. 프로그램을 실행할 때 JVM은 바이트 코드를 기계별 코드로 변환하는 역할을 담당합니다. JVM은 또한 플랫폼에 따라 다르며 메모리 관리, 가비지 수집, 보안 등과 같은 핵심 Java 기능을 제공합니다.

JVM이 제공하는 인터페이스가 기본 운영 체제 및 시스템 하드웨어에 의존하지 않기 때문에 JVM을 가상이라고 합니다. 하드웨어 및 운영 체제로부터의 이러한 독립성을 통해 Java 프로그램은 어디서든 한 번만 작성할 수 있습니다.

실생활에서 JVM은 Java 바이트코드를 실행할 수 있는 런타임 환경을 제공하는 사양입니다.

JVM은 무엇을 할 수 있나요?

JVM은 다음 작업을 수행합니다.

2. 코드 확인

3. 런타임 환경 제공

JVM은 다음과 같은 정의를 제공합니다.

1, 메모리 영역

2, 클래스 파일 형식

3, 등록 세트

4, 가비지 수집 힙

5, 치명적인 오류 보고서 등

JVM 아키텍처

을 살펴보겠습니다. JVM의 내부 아키텍처. 여기에는 클래스 로더, 메모리 영역, 실행 엔진 등이 포함됩니다.

1. 클래스 로더

클래스 로더는 클래스 파일을 로드하는 데 사용되는 JVM의 하위 시스템입니다. Java 프로그램을 실행할 때마다 클래스 로더에 의해 먼저 로드됩니다. Java에는 세 가지 내장 클래스 로더가 있습니다. 자바 가상 머신이란 무엇입니까? JVM에 대한 간략한 소개

1), Bootstrap ClassLoader: 첫 번째 클래스 확장으로 Extension 클래스 로더의 상위 클래스입니다. java.lang 패키지 클래스, java.net 패키지 클래스, java.util 패키지 클래스, java.io 패키지 클래스, java.sql 패키지 클래스 등 Java Standard Edition의 모든 클래스 파일이 포함된 rt.jar 파일을 로드합니다. , 등.

2), Extension ClassLoader: Bootstrap의 하위 클래스 로더이자 System 클래스 로더의 상위 클래스 로더입니다. $JAVA_HOME/jre/lib/ext 디렉토리에 있는 jar 파일을 살펴봅니다.

3), System/Application ClassLoader: Extension 클래스 로더의 하위 클래스 로더입니다. 클래스 경로에서 클래스 파일을 로드합니다. 기본적으로 클래스 경로는 현재 디렉터리로 설정됩니다. "-cp" 또는 "-classpath" 스위치를 사용하여 클래스 경로를 변경할 수 있습니다. 애플리케이션 클래스 로더라고도 합니다.

2. 클래스(메서드) 영역

메서드 영역에는 런타임 상수 풀, 필드 및 메소드 데이터, 메소드 코드 등 각 유형의 구조가 저장됩니다.

3. 힙

힙은 객체가 할당되는 런타임 데이터 영역입니다.

4. Stacking

Java 스택 스토리지 프레임. 스택에는 지역 변수와 부분 결과가 포함되어 있으며 메서드 호출 및 반환에서 역할을 합니다.

각 스레드에는 스레드와 동시에 생성된 전용 JVM 스택이 있습니다.

메서드가 호출될 때마다 새로운 프레임이 생성됩니다. 메서드 호출이 완료되면 프레임이 삭제됩니다.

5. 프로그램 카운터 레지스터

PC(프로그램 카운터) 레지스터에는 현재 실행 중인 Java 가상 머신 명령어의 주소가 포함됩니다.

6. Native Method Stack(Native Method Stack)

애플리케이션에서 사용되는 모든 네이티브 메소드를 담고 있습니다.

7. 실행 엔진(Execution Engine)

포함:

1), 가상 프로세서

2), 인터프리터: 바이트코드 스트림을 읽고 명령어를 실행합니다.

3), JIT(Just-In-Time) 컴파일러: 성능을 향상시키는 데 사용됩니다. JIT는 비슷한 기능을 가진 바이트 코드의 일부를 동시에 컴파일하므로 컴파일에 필요한 시간이 줄어듭니다. 여기서 '컴파일러'라는 용어는 JVM(Java Virtual Machine)의 명령어 세트를 특정 CPU의 명령어 세트로 변환하는 역할을 합니다.

8. Java Native Interface

JNI(Java Native Interface)는 다른 언어(예: C, C++, Assembly 등)에 인터페이스를 제공하는 프레임워크입니다. Java는 JNI 프레임워크를 사용하여 통신합니다. 출력을 콘솔로 보내거나 OS 라이브러리와 상호 작용합니다.

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 많은 관련 비디오 튜토리얼을 보려면 Java Tutorial

을 방문하세요!

위 내용은 자바 가상 머신이란 무엇입니까? JVM에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.