Jvm(46),指令集----对象创建与访问指令

Posted qingruihappy

tags:

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

虽然类实例和数组都是对象,但Java虚拟机对类实例和数组的创建与操作使用了不同的字节码指令(在第7章会讲到数组和普通类的类型创建过程是不同的)。对象创建后,就可以通过对象访问指令获取对象实例或者数组实例中的字段或者数组元素,这些指令如下。创建类实例的指令:new。

创建数组的指令:newarray、anewarray、multianewarray。

访问类字段(static字段,或者称为类变量)和实例字段(非static字段,或者称为实例变量)的指令:getfield、putfield、getstatic、putstatic。

把一个数组元素加载到操作数栈的指令:baload、caload、saload、iaload、laload、 faload、daload、aaload。

将一个操作数栈的值存储到数组元素中的指令:bastore、castore、sastore、iastore、 fastore、dastore、aastore。

取数组长度的指令:arraylength。检查类实例类型的指令:instanceof、checkcast。

public class Demo5 {

    public static void main(String[] args) {

         User user = new User();

    }

}

class User {

    String name;

    static int age;

}

技术分享图片

public class Demo5 {

    public static void main(String[] args) {

         User user = new User();

         User[] us=new User[10];          int[] bb=new int[10];

         user.name="woshishui";

         String name=user.name;

    }

}

class User {

    String name;

    static int age;

}

 

技术分享图片

以上是关于Jvm(46),指令集----对象创建与访问指令的主要内容,如果未能解决你的问题,请参考以下文章

Jvm(44),指令集----运算指令

Jvm(50),指令集----同步指令

Jvm(48),指令集----方法调用和指令返回

jvm中篇-05-字节码指令集与解析

jvm原理(35)基于栈的指令集与基于寄存器的指令集详细比对&执行栈指令集实例剖析

jvm原理(35)基于栈的指令集与基于寄存器的指令集详细比对&执行栈指令集实例剖析