当前位置:首页 > 虚拟机 > 正文

简述java虚拟机运行原理


一、java虚拟机运行过程

前面已经详细介绍了虚拟机的各个组件,下面我们通过一个实际案例来讨论一下它的运行过程。当通过调用类的main方法来启动虚拟机时,这个过程通常会接收一个字符串数组参数,如程序中:


publicclassHelloApp{
publicstaticvoidmain(String[]args){
n("HelloWorld!");
for(inti=0;i<;i++){
System.出去。println(args);



编译后,在命令行输入:javaHelloApprunvirtualmachine,虚拟机机器会尝试调用HelloApp的main方法。运行时,虚拟机首先检查HelloApp类是否已加载,如果没有,则尝试通过ClassLoader查找。如果搜索失败,则会抛出异常。类被加载后,必须经历链接和初始化的过程。


链接分为三个步骤:检查、准备和分析。验证检查类的符号和语义是否正确。在准备阶段,创建类或接口的静态域。解析可确保该类对其他类或接口的引用有效。然后对类进行初始化,包括执行类中声明的静态初始化函数和静态域初始化构造函数。在整个过程中,一个类的初始化必须在其父类的初始化之后完成。


这个过程可以概括为:首先查找并加载类,然后链接并初始化,保证类的正确性和完整性,最后执行初始化的静态部分过程保证了程序流程的正确性。


进阶资讯

Java虚拟机(JavaVirtualMachine),简称JVM,是一种通过软件模拟在实际计算机上实现的虚拟机器。Java虚拟机拥有自己想象中的处理器、堆栈、寄存器等硬件,以及相应的命令系统。