类的主动引用与被动引用
反射也会产生主动引用
类的被动引用:子类加载前会先完成父类的加载
- 子类引用父类的静态变量,不会使子类初始化
- 数组只是在堆内存中开辟一块空间,并不会加载类模板
- 引用静态常量不会触发此类初始化,链接阶段已经存入类常量池了
package com.li.changGe.reflection.memoryAnalysis;
public class PassiveCitationDemo01 {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
Class<?> aClass = Class.forName("com.li.changGe.reflection.memoryAnalysis.Song");
System.out.println(Song.INDEX);
}
}
class Father{
public static int num = 100;
static {
System.out.println("Father static block start");
}
}
class Song extends Father{
static {
System.out.println("Song static block start");
}
public static final int INDEX = 10;
}