JVM类加载机制
很多人觉得会写Java代码就行,Java底层怎么运行的不需要知道,但其实并不是这样,随着经验的积累,你需要了解越来越多的底层原理。我们先来看看下面的代码,看看class是怎样加载的。 public class BaseClass { static { System.out.println("BaseClass Init"); } public static final String value = "BaseClass"; } public class SubClass extends BaseClass { static { System.out.println("SubClass Init"); } } public static void main(String[] args) { System.out.println(SubClass.value); } 定义了一个父类BaseClass和子类SubClass,执行main方法会输出父类的“BaseClass Init”,而不是子类的,对于静态字段,,子类调用父类的静态字段吗,只会触发父类的初始化,而不会出发子类的初始化,为什么呢?下面我们来看下类的生命周期: 类从被加载到JVM内存中开始,到卸载出内存为止,它经历过了7个过程,包含加载(Loading)、验证(Verification)、准备(Preparation)、解析