说明,本文的目的在于从宏观逻辑上介绍清楚绝大多数的字节码指令的含义以及分类
只要认真阅读本文必然能够对字节码指令集有所了解
如果需要了解清楚每一个指令的具体详尽用法,请参阅虚拟机规范
指令简介
计算机指令就是指挥机器工作的指示和命令...虚拟机的字节码指令亦是如此含义
class文件相当于JVM的机器语言
class文件是源代码信息的完整表述
方法内的代码被保存到code属性中,字节码指令序列就是方法的调用过程
Java虚拟机的指令由一个字节长度的...字节码指令流应当都是单字节对齐的,只有,tableswitch和lookupswitch两个指令例外 这俩货是4字节为单位的
限制了操作码长度为一个字节 0~255, 但是也就导致操作码个数不能超过...,将会有一定程度的性能损失
指令详解
说明:
操作码一个字节长度,也就是8位二进制数字,也就是两位十六进制数字
class文件只会出现数字形式的操作码
但是为了便于人识别,操作码有他对应的助记符形式...简言之就是对于绝大多数的数值,都是存放在常量池中的 将需要使用ldc
对于一小部分可能比较常用的数值,则是可以直接把值当做操作数的 使用const 或者push
wide的含义 宽索引字节码的指令是单字节的