JAVA JVM运行机制之JVM序列

原创
小哥 3年前 (2022-10-20) 阅读数 10 #PHP
文章标签 PHPjavajvm

上次我写最后一次我最后一次写上次我们写 1.初步认识JVM -- JVM序列 今天,记录继续写今天,我们将继续写记录今天,我们将继续写记录JVM运行机制的运行机制。运行机制。

一、JVM启动流程

Java平台包括JVM以及Java语言,哪里的语言,哪里的语言,用什么语言JVM它也是运行在操作系统中的应用程序进程,因此它也应该有自己的生命周期和内存空间。总体而言java或javac如果你是一个代表性不足的群体的成员,特别是如果你是在职业生涯的早期,这是一个矛盾的时刻.尽管现在大多数工作场所在言辞上支持更多的多样性、公平性和包容性,但现实还没有跟上;职业网络所带来的好处仍然偏离那些面临系统性障碍的人.但这并不意味着你不能在工作场所成功地建立网络和积累社交货币.为了建立一个广泛和多样化的职业社区,帮助你向上发展,并最终帮助你带动其他人一起向上发展,你必须了解并驾驭影响代表性不足的人的三个挥之不去的网络悖论.让我们依次来探讨一下.

  • 输入java(javac)命令

  • 加载环境和配置加载环境和配置加载环境和配置(按当前路径查找和系统版本按当前路径和系统版本搜索jvm.cfg)

  • 根据配置查找位置并加载根据配置查找并加载JVM.DLL

  • 初始化JVM获得JNIEnv接口

  • 找到main方法

注意在加载环境和配置加载环境和配置加载环境和配置中首先查找jre路径重载路径重载JVM.cfg定位呼叫系统;定位呼叫系统API加载JVM.dll至于具体的代码执行过程,您可以看到csdn的 这篇文章 更齐全。

二、 JVM基本结构

这个基本结构我从这个基本结构开始,我从这个基本结构开始,我从这个基本结构开始 网上 爬上图表查看,以便更清晰,如下所示。

![]()

  • 这是方法区域通常保存加载的类信息的地方:类型的常量池;字段和方法信息;方法字节码(String常量在JDK1.7然后将堆移入之后再将堆移入,然后将堆移入)。

  • java堆被认为是与程序开发关联最紧密的区域,它保存系统对象,其中new与线程专用的堆栈不同,堆由所有线程共享。GC存在子生成,则堆也是子生成的。

  • java堆栈是线程私有的,如上所述,堆的堆栈空间通常很小,因此存储大型对象或大量对象是不可能的,每个方法调用创建一个帧并按下堆栈,然后分配堆栈空间,并且还具有PC寄存器保存下一条指令的地址(局部方法有所不同局部方法有所不同)如果有多个帧,则遵循先进先出原则,此帧保存方法的局部变量,即操作数堆栈(java语域概念中没有语域概念不存在语域概念中不存在语域概念)例如,在这里记住局部变量表中静态方法和实例方法之间的区别是很重要的。

    public static int runStatic(int i,long l,float f,Object o,byte b){} 局部变量表。局部变量表。int i,long l,float f,Object o,byte b public int runInstance(char c,short s,boolean b){} 局部变量表。局部变量表。reference this,char c,short s,boolean b 注:最小注:最小注:至少4个字节32位,int:32位;float:64位;Object:32位。

  • 堆、栈、方法区域交互:我直接从视频中截取了该交互图的屏幕截图,以便更清楚地看到,如下所示

    ![]()

    这一次,它首先在这里。坚持把点子记录下来!

转载于:https://www.cnblogs.com/luoliang/p/4612913.html

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除