深入理解Java虚拟机——字节码与数据类型
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Java虚拟机——字节码与数据类型相关的知识,希望对你有一定的参考价值。
目录
一、字节码与数据类型的概述
- 在Java虚拟机的指令集合中,大多数的指令都包含了某操作所对应的数据类型信息。
二、字节码指令
- iload指令
用于从局部变量表中加载int类型的数据到操作数栈中。 - fload指令
加载的则是float类型的数据。 - iload指令示例图
三、数据类型
3.1、大部分指令包含类型信息
-
对于大部分与数据类型相关的字节码指令,他们的操作码助记符号中都有特殊的字符来表明专门为哪种数据类型服务:
特殊字符 作用 i 代表对int类型的数据操作 l 代表对long类型的数据操作 s 代表对short类型的数据操作 b 代表对byte类型的数据操作 c 代表对char类型的数据操作 f 代表对float类型的数据操作 d 代表对double类型的数据操作 a 代表对reference类型的数据操作
3.2、其余部分指令不包含类型信息
- 也有一些指令的助记符中没有明确地致命操作类型的字母,如:
- arraylength指令,它们没有代表数据类型的特殊字符,但操作数永远只能是一个数组类型的对象。
- goto指令,表示无条件跳转指令,也是与数据类型无关的。
以上是关于深入理解Java虚拟机——字节码与数据类型的主要内容,如果未能解决你的问题,请参考以下文章