深入理解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虚拟机——字节码与数据类型的主要内容,如果未能解决你的问题,请参考以下文章

深入理解JVM学习笔记——-9指令

深入理解JVM学习笔记——-9指令

深入理解Java虚拟机06--虚拟机字节码执行引擎

深入理解JAVA虚拟机 虚拟机执行子系统

Jvm(42),指令集----字节码与数据类型

深入理解Java虚拟机——类型转换指令