首页 > 其他分享 >JVM 极简教程

JVM 极简教程

时间:2024-01-30 09:45:46浏览次数:25  
标签:极简 教程 Java 字节 每执 JVM 法执 class 加载

 每执⾏⼀个Java⽅法,就将⽅法存⼊Java栈,每执⾏⼀个本地⽅法,也就是native⽅法,就将⽅
法存⼊本地⽅法栈中,⽅法执⾏完后就从栈中移除

程序计数器⽤来记录待执⾏的下⼀条字节码指令地
址,⽅法执⾏过程中产⽣的Java对象会存⼊堆中,垃圾回收器会回收已经没有被使⽤的Java对象,JIT编
译器会在程序运⾏过程中发现热点代码,并编译为机器指令,从⽽提⾼执⾏效率。

 5
先将java⽂件编译为class⽂件,再利⽤类加载器将class⽂件加载到⽅法区中,然后由解析器逐⾏执⾏字
节码,每执⾏⼀个Java⽅法,就将⽅法存⼊Java栈,每执⾏⼀个本地⽅法,也就是native⽅法,就将⽅
法存⼊本地⽅法栈中,⽅法执⾏完后就从栈中移除,程序计数器⽤来记录待执⾏的下⼀条字节码指令地
址,⽅法执⾏过程中产⽣的Java对象会存⼊堆中,垃圾回收器会回收已经没有被使⽤的Java对象,JIT编
译器会在程序运⾏过程中发现热点代码,并编译为机器指令,从⽽提⾼执⾏效率。
类加载⼦系统会将某个class⽂件加载到⽅法区的内存空间中,可以理解为把class⽂件中字节码指
令,读取到内存中。
验证阶段会验证待加载的class⽂件是否正确,⽐如验证⽂件格式
准备阶段会为static变量分配内存并赋零值
解析阶段会将符号引⽤解析为直接引⽤,在⼀个字节码⽂件中,会⽤到其他类,⽽在字节码中只会
存⽤到的类的类名,⽽解析阶段就是会根据类名找到该类加载后在⽅法区中的地址,也就是直接引
⽤,并替换调符号引⽤,这样真正运⾏字节码时,就能直接找到某个类了。
初始化阶段会给static变量赋值,并执⾏static块

 



标签:极简,教程,Java,字节,每执,JVM,法执,class,加载
From: https://www.cnblogs.com/JavaYuYin/p/17995815

相关文章

  • 面试类-JVM原理(三)
    42.能说一下类的生命周期吗?一个类从被加载到虚拟机内存中开始,到从内存中卸载,整个生命周期需要经过七个阶段:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading),其中验证、准备、解析三个部分统称为连接(Linking)。......
  • 面试类-JVM优化(二)
    32.有哪些常用的命令行性能监控和故障处理工具?操作系统工具top:显示系统整体资源使用情况vmstat:监控内存和CPUiostat:监控IO使用netstat:监控网络使用JDK性能监控工具jps:虚拟机进程查看jstat:虚拟机运行时信息查看jinfo:虚拟机配置查看jmap:内存映像(导出)jhat:堆转......
  • 无涯教程-Django - Apache配置
    到目前为止,在无涯教程的示例中,已经使用了DjangodevWeb服务器,但是此服务器仅用于测试,不适合生产环境。一旦投入生产,您就需要一个真实的服务器,如Apache,Nginx等,在本章中讨论Apache。通过Apache为Django应用提供服务是通过使用mod_wsgi完成的。因此,第一件事是确保您已安装Apache和......
  • 基于 docker 安装 nginx 详细教程
    1.创建普通用户用于管理docker在本教程中我们创建一个普通用户来进行后续的docker相关服务的配置与运维。当然本操作是非必须的,你可以直接使用root用户来直接操作,对整个流程没有影响。不想创建用户请直接跳过第一部分,从第二部分开始操作即可。创建普通用户lidyuseraddlidy......
  • 无涯教程-Swift - 修饰符
    协议中的常量,变量和函数受到限制,并允许通过访问控制以全局和局部方式进行访问。Swift4语言提供了三种不同的访问级别。它们是公共,内部和私有访问权限。S.NoAccessLevels&Definition1Public使实体可以在其定义模块的任何源文件中进行处理,而在导入定义模块的另一个模块......
  • 无涯教程-Swift - Generics(泛型)
    Swift4语言提供"Generic"函数来编写灵活且可重用的函数和类型,泛型用于避免重复并提供抽象,Swift4标准库是使用泛型代码构建的。Swift4s的"Arrays"和"Dictionary"类型属于Generic集合。funcexchange(a:inoutInt,b:inoutInt){lettemp=aa=bb=temp}varn......
  • 移动硬盘数据恢复完整教程
    本篇是关于移动硬盘数据恢复的完整指南,包含数据恢复原理、常见数据丢原因、注意事项、恢复数据详细步骤、常见问题等方面,帮您快速掌握移动硬盘数据恢复相关技巧,及时挽救丢失的数据。移动硬盘数据恢复原理在当今的数字化时代,移动硬盘的便利性越来越受欢迎,它可以帮助我们携带数TB的数......
  • 移动硬盘数据恢复完整教程
    本篇是关于移动硬盘数据恢复的完整指南,包含数据恢复原理、常见数据丢原因、注意事项、恢复数据详细步骤、常见问题等方面,帮您快速掌握移动硬盘数据恢复相关技巧,及时挽救丢失的数据。移动硬盘数据恢复原理在当今的数字化时代,移动硬盘的便利性越来越受欢迎,它可以帮助我们携带数TB的数......
  • 无涯教程-Swift - 类型转换
    为了验证的类型,"TypeCasting"以Swift4语言开始发挥作用,它用于检查类型是属于特定的超类还是子类,或者是否在其自己的层次结构中定义。Swift4类型转换提供两个运算符"is"来检查值的类型和"as",并将类型值转换为其他类型,类型转换还检查类型是否遵循特定的协议一致性标准。类层......
  • 无涯教程-Swift - 引用计数
    内存管理函数及其用法通过自动引用计数(ARC)以Swift4语言处理。ARC用于初始化和取消初始化系统资源,从而在不再需要时释放类使用的内存空间。ARC跟踪有关我们的代码之间的关系的信息,以有效地管理内存资源。ARC函数每次通过init()创建新的类时,ARC每次都会分配一块内存来存储信......