
JVM学习总结
dp小王子
讲真的,写博客好累。。。
展开
-
JVM学习总结-内存区域、内存分配和垃圾收集器
jvm内存区域: 程序计数器:可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。各条线程间计数器互不影响,独立存储,是“线程私有内存”。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Nati...原创 2019-01-18 23:04:02 · 142 阅读 · 0 评论 -
虚拟类加载机制
虚拟类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 类加载的时机: 类从被加载到虚拟机内存中开始,到卸载出内存为止,整个生命周期包括: 初始化时机(对一个类主动引用): 遇到new、getstatic、putstatic、或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触...原创 2019-01-19 23:23:36 · 185 阅读 · 0 评论 -
class类文件结构
class类文件结构 class任何一个class文件都对应着唯一一个类或接口的定义信息,class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在class文件之中,中间没有添加任何分隔符,class文件格式采用一种类似于c语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型:无符号数和表 无符号数:属于基本的数据类型,以u1,u2,u4,u8来分别代表1个字节...原创 2019-01-19 23:28:49 · 147 阅读 · 0 评论 -
运行时栈帧结构与Tomcat类加载架构
运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在续集里面入栈到出栈的过程。 每一个栈帧都包括局部变量表、操作数栈、动态连接、方法返回和一些额外的附加信息。对于执行引擎来说,在活动线程中,只有位于栈顶的栈帧才是有...原创 2019-01-20 11:38:12 · 288 阅读 · 1 评论