深入理解Java虚拟机——加载和存储指令

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Java虚拟机——加载和存储指令相关的知识,希望对你有一定的参考价值。

目录

一、加载和存储指令的概述

  • 加载和存储指令用于将数据在栈帧中的局部变量表和操作数栈之间来回传输。

二、加载和存储指令的内容

  • 将一个局部变量加载到操作数栈
    iload、iload< n>、lload、lload< n>、fload、fload< n>、dload、dload< n>、aload、aload< n>;

  • 将一个数值从操作数栈存储到局部变量表
    istore、istore_< n>、lstore、lstore_ < n> 、fstore、fstore_< n>、dstore、dstore_< n>、astore、astore_< n>;

  • 将一个常量加载到操作数栈
    bipush、sipush、ldc、ldc_w、ldc2_w、aconst_null、iconst_ml、iconst_< i>、lconst_< l>、fconst< f>、dconst_< d>;

  • 扩充局部变量表的访问索引的指令
    wide

三、加载和存储指令的示例

  • 代码

    public class Test1
    	public int add(int a,int b)
    		int c= a + b;
    		return 1+1;
    	
    
    
  • 执行javac命令,生成.class文件

  • 执行javap命令,分析.class字节码文件

以上是关于深入理解Java虚拟机——加载和存储指令的主要内容,如果未能解决你的问题,请参考以下文章

《深入理解Java虚拟机》

读《深入理解Java虚拟机》

深入理解JAVA虚拟机第二部分.内存自动管理机制.2.HotSpot虚拟机对象探秘

深入理解Java虚拟机——字节码与数据类型

深入理解Java虚拟机——字节码与数据类型

深入理解java:1.1.类加载器