- 博客(2)
- 收藏
- 关注
原创 字节码执行细节
Java虚拟机执行Java字节码的时候,每一个方法都对应一个虚拟机栈中的栈帧,方法从调用开始执行到执行完成返回相应值的过程就对应着一个栈帧从入栈到出栈的过程。那么一个方法的栈帧需要多大的内存呢?早在方法表的code属性中做了相关规定:比如max_locals指明局部变量表的最大容量, max_stacks代表操作数栈的最大深度等。对于一个栈帧,大概包括局部变量表、操作数栈、动态链接和方法返回地址...
2018-11-22 17:12:39 235
原创 类加载机制
首先,这里所说的类不是Java类,而是编译之后的class字节码文件。一个类从被加载到虚拟机内存中开始,到卸载出内存为止,它的声明周期为:那么什么时候进行第一阶段(加载)呢?Java虚拟机并没有规定,但必须在初始化阶段之前。对初始化来说,虚拟机规定了5类情况必须对类进行初始化,分别为:1. 遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果...
2018-11-21 19:43:51 100 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人