摘要: 字节码指令 异常处理 每个时刻正在执行的当前方法就是虚拟机栈顶的栈帧。方法的执行就对应着栈帧在虚拟机中入栈和出栈的过程。当一个方法执行完,有两种情况,一种是正常执行,另一种是异常。 完成出口(返回地址) 正常返回:(调用程序计数器中的返回地址) 三部曲: 恢复上层方法的局部变量表和操作数栈 把返回值 阅读全文
posted @ 2021-10-11 11:32 指尖上的代码go 阅读(37) 评论(0) 推荐(0)
摘要: 在java虚拟机规范中定了java的内存结构包括两部分:第一是随着虚拟机启动而创建,随着虚拟机退出而销毁,供所有Java程序共享,另一部分是与java线程一一对应,随着线程的开始和结束而创建和销毁。 JVM运行时内存结构 以上是Java虚拟机规范,不同的虚拟机实现会各有不同,大部分会遵守规范,下面介 阅读全文
posted @ 2021-10-11 11:31 指尖上的代码go 阅读(114) 评论(0) 推荐(0)
摘要: 在讲JVM最开始,我们先以一个简单的Java程序的运行开始讲,JAVA程序的运行原理。下面我先把我们实例程序列出来,我们该实例程序一共有两个java文件:Hello.java和Person.java: Hello.java文件: public class Hello { public static 阅读全文
posted @ 2021-10-11 11:29 指尖上的代码go 阅读(135) 评论(0) 推荐(0)
摘要: 一般大部分java程序并不知道一个java类到底占用了多少内存空间,下面我就分析一下一个java对象在堆中到底占用了多少内存空间。 一个Java对象有三部分数据构成:对象头+对象属性(实例对象)+数据填充(padding) 由于java对象大小必须8字节整数倍,数据填充就是为当java对象前两部分大 阅读全文
posted @ 2021-10-11 11:29 指尖上的代码go 阅读(212) 评论(0) 推荐(0)