深入理解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虚拟机——对象创建与访问指令的主要内容,如果未能解决你的问题,请参考以下文章
深入理解Java虚拟机Java对象的创建,内存布局和访问定位