说明:笔记内容来源于《北京圣思园教育 - 张龙老师 - 深入理解JVM》视频课程。如有侵权,请联系删除。
R大:JVM资深开发者
目录
1 类的主动使用、被动使用
Java程序对类的使用方式可分为两种:
① 主动使用
② 被动使用
1.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不是首次主动使用,不会再次初始化,所以静态代码块没有被执行。
② 访问某个类或接口的静态变量,或者对该静态变量赋值
(对静态变量取值、赋值)
③ 调用类的静态方法
②③本质上是一样的,都