深入理解JVM:字节码指令详解

字节码指令集是一种具有鲜明特点,优劣势都很突出的指令集架构,这些都是优秀人才的思想结晶,正式因为如此,Java语言才能得以广泛流行和快速发展。在各行各业的软件发展中占据了举足轻重的作用。

1.前言

当前学习的知识是字节码指令相关的知识,和上一篇的class文件格式一脉相承。学好字节码指令对于深入理解JVM有更好的帮助,能够清除的了解各种字节码指令的含义与作用。
Java虚拟机你的指令由一个字节长度的,代表着某种特定操作含义的数字(成为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(成为操作数,Operands)而构成。

2.字节码与数据类型

在Java虚拟机的指令集中,大多数的指令都包含了其操作所对应的数据类型信息。例如:iload指令用于从局部变量表中加载int型的数据到操作数栈中,而fload指令加载的就是fload类型的数据。
这里列出常见的一些助记符中特殊字符的表示:

字符 代表含义
i 代表int类型的数据操作
l 代表long类型的数据操作
s 代表short类型的数据操作
b 代表byte类型的数据操作
c 代表char类型的数据操作
f 代表float类型的数据操作
d 代表double类型的数据操作
a 代表reference类型的数据操作

关于Java虚拟机指令集所支持的数据类型,这里不进行罗列,详情参考《Java虚拟机规范(Java SE7版)》。

3.加载和存储指令

记载和存储指令用于将数据在栈帧中的局部变量表和操作数栈之间来回传输,这类指令包含如下类容。

  • 将一个局部变量加载到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_

你可能感兴趣的:(JVM基础与原理,jvm)