Java Bytecodes:深入解析与实践应用
1. 多模块程序创建方式
创建多模块程序有两种方式。一是使用较为传统的 EXTERN 指令,二是利用 INVOKE 、 PROTO 和 PROC 的高级功能。后者简化了许多细节,并且针对调用Windows API函数进行了优化,但也隐藏了一些细节。因此,你可能更倾向于结合 CALL 和 EXTERN 使用显式的栈参数。
2. Java虚拟机(JVM)
Java虚拟机(JVM)是执行编译后的Java字节码的软件,它是Java平台的重要组成部分。Java平台包含协同工作的程序、规范、库和数据结构。Java字节码是编译后的Java程序中的机器语言。
与x86处理器使用寄存器保存操作数不同,JVM是基于栈的机器,使用栈进行数据移动、算术运算、比较和分支操作。每个Java源程序必须编译成Java字节码(以 .class 文件形式)才能执行,并且包含Java字节码的同一程序可以在任何安装了Java运行时软件的计算机系统上执行。
当Java方法执行时,会有自己的栈帧,分为三个区域:
- 局部变量区
- 操作数区
- 执行环境区
操作数区位于栈顶,压入其中的值可立即作为算术运算符、逻辑运算符和类方法的参数使用。在涉及算术或比较的指令中使用局部变量之前,必须将其压入栈帧的操作数区,后续将此区域称为操作数栈。
在Java字节码中,每
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



