什么是JVM

1.基本概念:

        JVM(Java Virtual Machine,Java虚拟机)是一个用于运行Java程序的虚拟机。它是Java编程语言的核心部分,负责将Java字节码(bytecode)解释或编译成计算机可以执行的机器码,从而实现Java程序的跨平台特性。

2.主要功能:


        (1).加载字节码:JVM将编译后的Java字节码文件(.class文件)加载到内存中。

        (2).字节码验证:验证字节码的正确性和安全性,以防止恶意代码的执行。

        (3).解释执行或即时编译:将字节码转换为机器码。JVM可以通过解释器逐行解释执行字节码,也可以通过即时编译器(JIT,Just-In-Time Compiler)将字节码编译为机器码以提高性能。

        (4).内存管理:JVM负责管理程序运行时的内存分配和回收,包括堆(Heap)、栈(Stack)、方法区(Method Area)、本地方法栈(Native Method Stack)和程序计数器(Program Counter)。

        (5).垃圾回收:JVM通过垃圾回收机制(Garbage Collection, GC)自动管理和回收不再使用的对象所占用的内存空间。

        (6).异常处理:JVM提供了异常处理机制,确保在运行时出现错误时能够安全地终止或继续程序执行。

        (7).安全性:JVM实现了Java的沙箱(Sandbox)安全模型,限制了未经授权的代码的操作权限,保护系统不受恶意代码的影响

3.特性:

        JVM的最大特点是跨平台性。Java程序首先被编译成与平台无关的字节码(.class文件),然后这些字节码可以在任何安装了JVM的操作系统上运行。JVM为每种操作系统和硬件平台提供了不同的实现版本(如Windows版、Linux版、macOS版等),因此Java程序可以“编写一次,随处运行”。

4.组成部分:
JVM主要由以下几个部分组成:

        (1).类加载器子系统(Class Loader Subsystem):负责加载类文件。
        (2).运行时数据区(Runtime Data Area):包括堆(Heap)、方法区(Method Area)、Java栈(Java Stack)、程序计数器(PC寄存器)等。
        (3).执行引擎(Execution Engine):负责执行字节码,包括解释器和即时编译器(JIT)。
        (4).本地方法接口(Native Method Interface, JNI):提供与本地代码(如C/C++)交互的接口。
        (5).垃圾收集器(Garbage Collector, GC):负责自动内存管理和回收。

5.总结:

        (1).JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,他的职责是运行Java字节码的文件,作用是为了跨平台的特性。

        (2).JVM的功能有三项:

        解释执行字节码的指令

        管理内存中的对象分配

        优化热点代码提升执行效率

        (3).JVM组成分为:类加载子系统,运行时数据区,执行引擎,本地接口这四部分。

        (4).常用的JVM是Oracle提供的Hotspot虚拟机,也可以选择GraalVM.龙井.oprnJ9等虚拟机。

你可能感兴趣的:(jvm)