jvm执行java大致采用过程_java之Jvm学习--JVM运行机制

本文详细介绍了JVM的启动过程,从java命令开始,经过配置文件加载、找到jvm.dll并初始化,直至执行main方法。同时,文章剖析了JVM的基本结构,包括类加载器、PC寄存器、方法区、Java堆和Java栈。讨论了栈上分配对象的优势以及线程间通信涉及的可见性、有序性问题和指令重排规则。
摘要由CSDN通过智能技术生成

JVM启动流程

4c2b31796fec004635d03f8a609ec749.png

1.java虚拟机启动的命令是通过java +xxx(类名,这个类中要有main方法)或者javaw启动的。

2.执行命令后,系统第一步做的就是装载配置,会在当前路径中寻找jvm的config配置文件。

3.找到jvm的config配置文件之后会去定位jvm.dll这个文件。这个文件就是java虚拟机的主要实现。

4.当找到匹配当前版本的jvm.dll文件后,就会使用这个dll去初始化jvm虚拟机。获得相关的接口。之后找到main方法开始运行。

上面这个过程的描述虽然比较简单,但是jvm的启动流程基本都已经涵盖在里面了。

jvm的基本结构

f06d25d5fcb201f05302c06be61c1eb6.png

类加载器子系统就是通常我们所说的ClassLoader类加载器,首先我们会通过ClassLoader加载到jvm的内存中去,本地方法区主要就是native的方法调用,这个我们不前不做关心,

pc寄存器

1.每个线程拥有一个pc寄存器。

jvm会为每一个线程分配一个pc寄存器,这个pc寄存器总是会指向下一个指令的地址。这样程序在执行过程中pc寄存器总是会知道下一步会做什么。在执行本地方法的时候,p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值