字节码助记符的前缀
类型 | 代码 | 示例 | 描述 |
byte | b | baload | 从数组装载 byte 类型 |
short | s | sastore | 将 short 类型存入数组中 |
int | i | iload_1 | 从局部变量 1 中装载 int 类型 |
long | l | lcmp | 比较 long 类型值 |
char | c | i2c | 把 int 类型数据转换为 char 类型 |
float | f | fload | 从局部变量中装载 float 类型 |
double | d | dconst_1 | 将 double 类型常量 1.0 压入栈 |
reference | a | aaload | 从数组装载引用类型 |
Java 虚拟机中的保存类型和计算类型
保存类型 | 堆或者方法区中的最小比特数 | 计算类型 | Java 栈帧中的字长 |
byte | 8 | int | 1 |
short | 16 | int | 1 |
int | 32 | int | 1 |
long | 64 | long | 2 |
char | 16 | int | 1 |
float | 32 | float | 1 |
double | 64 | double | 2 |
reference | 32 | reference | 1 |
基本类型终结符
终结符 | 类型 |
B | byte |
C | char |
D | double |
F | float |
I | int |
J | long |
S | short |
Z | boolean |
boolean 的终结符不为 B 是让 byte 占用了,long 的终结符不是 L 也是因为让对象终结符占用了。返回值为 void 类型的终结符是 V,对象类型终结符为 L 和 ;,数组类型终结符 [
字段描述符示例
描述符 | 字段声明 |
I | int i |
[[J | long[][] windingRoad |
[Ljava/lang/Object; | Object[] stuff |
Ljava/util.Hashtable; | java.util.Hashtable ht |
[[[Z | boolean[][][] isReady |
方法描述符示例
描述符 | 方法声明 |
()I | int getSize() |
()Ljava/lang/String; | String toString() |
([Ljava/lang/String;)V | void main(String[] args) |
()V | void wait() |
(JI)V | void wait(long timeout, int nanos) |
(Z[Ljava/lang/String;II)Z | boolean regionMatches(boolean ignoreCase, int toOffset, String other, in oooffset, int len |
([BII)I | int read(byte[] b, int off, int len) |
收藏自互联网。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于