Java虚拟机或JVM是Java运行时系统。它是一个有助于驱动Java代码的虚拟机环境。与其他编程语言不同,每当我们编译Java程序时,它永远不会生成机器码。尽管如此,Java编译器会为Java虚拟机生成字节码。
JVM允许我们同时解决可移植性和安全性问题:
在计算机编程中,平台一词代表程序运行的环境。平台无关仅仅意味着程序可以在不同平台上轻松执行,而无需重写和重新编译。这仅是可能的。因为将Java程序转换为字节码可以更容易地在不同环境中执行程序,因为每个平台只需要实现JVM。
尽管JVM会因平台而异,但它们可以理解相同的Java字节码。这使得Java成为一种独立于平台的技术,也证明了WORA(Write Once Run Anywhere)的合理性。
JVM在安全方面扮演着重要的角色。JVM正在执行的Java程序也有助于使其安全,因为JVM负责执行环境,它可以包含程序并防止出现系统外部的问题。这是因为字节码已经过高度优化,字节码可以让JVM更快地运行程序。JVM还会验证字节码,以确保程序的进一步安全运行。
Java虚拟机或JVM的内部架构包括:
类加载器在运行时初始化类文件。它动态加载类并读取.Class文件并保存在方法区域中创建的字节码。它的三个主要功能是加载、链接和初始化。类加载器主要分为三种类型:
每个JVM都有一个方法区。方法区存储所有类级别的数据,如类名、方法、静态变量、非静态变量、字段等。
堆区默认存放对象数据和对应的实例变量。
将为每个单独的线程创建一个单独的运行时堆栈。创建的每个堆栈块称为堆栈帧,用于存储相应的局部变量。线程被销毁后,堆栈由JVM自动终止。
将为每个线程创建一个单独的PC寄存器。它保存当前执行数据的数据。一旦执行停止,PC寄存器将自动更新到下一部分。
包含我们程序中使用的所有本机方法。
执行引擎逐行执行字节码。它包含三个主要组件:
Java Native Interface(JNI)是一个框架,它提供了一个接口来与本地方法库交互并调用用C、C++、Assembly等语言编写的应用程序。
以上就是动力节点小编介绍的"所有关于Java虚拟机学习的掌握",希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为您服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习