![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
axi深入JVM学习笔记
文章平均质量分 93
我是一个大西瓜.
韶光易逝,劝君惜取少年时。
展开
-
深入JVM之字节码执行引擎
虚拟机字节码执行引擎 8.1、概述 Java的虚拟机字节码执行引擎是基于栈的字节码解释执行引擎。 8.2、运行时栈帧结构 Java虚拟机,以方法作为最基本的执行单元,栈帧是支持虚拟机进行方法调用和方法执行背后的数据结构。它是虚拟机运行时数据区的Java虚拟机栈的元素。 每一个栈都是线程私有的。 8.2.1、局部变量表 局部变量表,顾名思义,用于存放方法和参数中的局部变量。 局部变量表以变量槽为最小单位存储变量,32位的数据类型占一个变量槽,64位占用两个变量槽。 由于局部变量表是建在Java虚拟机栈中的,原创 2021-11-06 17:34:38 · 120 阅读 · 0 评论 -
深入JVM之:虚拟机类加载机制
虚拟机类加载机制 7.2、虚拟机类加载时机 加载,验证,准备,初始化,卸载是固定的。 什么时候加载,都可,虚拟机规范未制定。但是什么时候初始化,严格规定。 遇到 new getstatic putstatic invokestatic 这四条字节码指令,若类型未初始化,需要先出发其初始化阶段。 使用new实例化对象时。 读取或设置一个类型的静态字段。 调用一个类的静态方法时。 使用反射包进行反射调用时。 在初始化类时,若发现其父类未被初始化,则先初始化其父类。 虚拟机启动时,用户指定一原创 2021-11-06 17:31:58 · 304 阅读 · 0 评论 -
深入JVM之虚拟机类加载机制
虚拟机类加载机制 7.2、虚拟机类加载时机 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 加载,验证,准备,初始化,卸载是固定的。 什么时候加载,都可,虚拟机规范未制定。但是什么时候初始化,严格规定。 遇到 new getstatic putstatic invokestatic 这四条字节码指令,若类型未初始化,需要先出发其初始化阶段。 使用new实例化对象时。 读取或设置一个类型的静态字段。 调用一个类的静态方法时。 使用反射包进行反射调用时。 在初始化类时,若发原创 2021-10-29 19:41:00 · 114 阅读 · 0 评论 -
深入Java虚拟机之Java内存区域
Java内存区域 2.1、运行时数据区域 1、程序计数器 当前线程所执行的字节码的行号指示器 字节码解释器工作时就是通过改变这个计数器的值来选取吓一跳需要执行的字节码指令。 是线程私有内存,每条线程都有一个独立的程序计数器。 作用: 若正在执行的一个java 方法,那么这个计数器记录的是正在执行的虚拟机字节码指令的地址。 若执行的是native方法,则为undefined,为空。 2、Java虚拟机栈 也是线程私有,生命周期与线程相同。 虚拟机栈描述的是Java方法执行的线程内存模型。 每个方法原创 2021-10-20 10:18:09 · 103 阅读 · 0 评论