- 博客(4)
- 收藏
- 关注
原创 深入理解Java虚拟机3 - JVM内存模型
jvm内存空间分为五个部分:堆方法区本地方法栈程序计数器虚拟机栈程序计数器程序计数器记录的是当前线程即将执行的那一条字节码指令的地址。每个线程都有自己的计数器(私有,生命周期和线程相同)。执行java方法时,程序计数器是有值的,执行native本地方法时,计数器值为空。程序计数器占用内存非常小,不会出现OutOfMemoryError虚拟机栈Java虚拟机栈是描述Java方法执行线程内存模型,每个方法被执行的时候,Java虚拟机栈会同步创建一个栈帧用于存储方法运行时所需的信.
2021-01-16 13:53:21 109
原创 深入理解java虚拟机2 - 字节码指令与类加载机制
什么是字节码指令字节码指令是包含在字节码中的指令,是jvm可执行的指令,可以说是jvm层面的汇编语言,或者说是java代码的最小单元。字节码指令格式java虚拟机的指令由一个操作码和零至多个操作数构成。操作码:一个字节长度,代表某种特定操作含义的数字。(总数不超过256个)操作数:代表此操作的参数。字节码指令分类加载与存储指令:用于将数据在栈帧中的局部变量和操作数栈中来回传输。运算指令:用于对两个操作数栈上的值进行某种特定运算,并把结果重新存入到操作栈顶。大体上算术指令可分为两种:
2021-01-08 15:16:51 108
原创 深入理解java虚拟机1 - 字节码
无关性与平台无关:Oracle公司及其他虚拟机发行商发布过许多可以运行在各种不同硬件平台和操作系统上的java虚拟机,这些平台都统一支持一种与平台无关的程序存储格式——字节码,从而实现了“一次编写,到处运行”。字节码正是平台无关性的基石。与语言无关:java虚拟机不与任何程序语言绑定(包括java语言),它只与“Class文件”这种特定的二进制文件有关联。实现语言无关性的基础仍然是虚拟机和字节码存储格式。不同的语言拥有不同的编译器, 只要这些语言按照编译器所生产的字节码符合JVM的规范,那JVM
2020-12-27 18:57:59 155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人