深入理解Java虚拟机——对象创建与访问指令

Posted 小志的博客

tags:

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

目录

一、对象创建与访问指令的概述

  • 虽然类实例和数组都是对象,但Java虚拟机对类实例和数组的创建与操作使用了不同的字节码指令。
  • 对象创建后,就可以通过对象访问指令获取对象实例或者数组实例中的字段或者数组元素。

二、对象创建与访问指令

描述指令
创建类的实例new
访问类字段(static字段或者称为类变量)和实例字段(非static字段或者实例变量)getfield、putfield、getstatic、putstatic
把一个数组元素加载到操作数栈baload、caload、saload、iaload、laload、faload、daload、aaload
将一个操作数栈的值存储到数组元素中bastore、castore、sastore、iastore、fastore、daload、aaload
取数组长度的指令arraylength
检查类实例类型的指令instanceof、checkcast

三、对象创建与访问指令的示例

  • 代码

    public class Test1
    	public static void main(String []args)
    		User user=new User();
    		user.name="xz";
    		String name=user.name;
    	
    	
    
    
    class User
    	String name;
    	static int age;
    
    
  • 执行javac命令编译成.class文件

  • 执行javap命令查看字节码指令

以上是关于深入理解Java虚拟机——对象创建与访问指令的主要内容,如果未能解决你的问题,请参考以下文章

深入理解JVM虚拟机读书笔记——对象的创建与内存布局

深入理解JVM:HotSpot虚拟机对象探秘

深入理解Java虚拟机Java对象的创建,内存布局和访问定位

深入理解java虚拟机HotSpot Java对象创建,内存布局以及訪问方式

深入理解Java虚拟机:JVM内存管理与垃圾收集理论

深入理解java虚拟机HotSpot虚拟机对象解析