JVM笔记 - 04数组的创建与反编译助记符

本文详细探讨了JVM中数组的创建过程,包括引用类型的一维、二维数组以及基本类型的数组。通过实例解析了数组在JVM中的类型表示,并介绍了与数组创建相关的字节码助记符`anewarray`和`newarray`,揭示了它们在内存中的操作机制。
摘要由CSDN通过智能技术生成


说明:笔记内容来源于《北京圣思园教育 - 张龙老师 - 深入理解JVM》视频课程。如有侵权,请联系删除。

1、内容回顾

所有的Java虚拟机实现,必须在每个类或接口被Java程序"首次主动使用"时,才初始化这个类或接口。

package com.test;

public class MyTest4 {
   

	public static void main(String[] args) {
   
		MyParent myParent = new MyParent();
		System.out.println("=============");
		MyParent myParent2 = new MyParent();
	}

}

class MyParent {
   
	static {
   
		System.out.println("MyParent static code");
	}
}

执行结果为:
​​​​在这里插入图片描述
结果解释:
MyParent类被首次主动使用时,才会被初始化;
创建myParent时,MyParent是首次主动使用,初始化时会执行静态代码块,
创建myParent2时,MyParent不是首次主动使用,不会再次初始化,所以静态代码块没有被执行。

2、引用类型的一维数组

package com.test;

public class MyTest4 {
   

	public static void main(String[] args) {
   
		//一维数组
		MyParent[] myParent = new MyParent[1];
		System.out.println("done");
	}

}

class MyParent {
   
	static {
   
		System.out.println("MyParent static code");
	}
}

执行结果为:
在这里插入图片描述
说明创建数组,不是对MyParent 的主动使用。
那myParent 的类型到底是什么呢?

package com.test;

public class MyTest4 {
   

	public static void main(String[] args) {
   
		//一维数组
		MyParent[] myParent = new MyParent[
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值