1.Java的类加载机制
Java源代码经过编译器编译成字节码文件(.class文件),然后由JVM将.class文件加载进内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。
基础类一次性加载到JVM中,其他类在用时才会加载。父类加载器加载过的类不会被子加载器重复加载。
类加载器:以下类加载器按顺序加载,用户可自行编写类加载器,需继承ClassLoad类.
1.Bootstrap ClassLoader(启动类加载器):加载Java的核心类,代码用C++编写,用户不能直接调用;
2.Extendsion ClassLoader(扩展类加载器):用来加载Java的拓展库;
3.Application ClassLoader(应用程序类加载器):系统默认的类加载器,加载CLASSPATH下的类库。
2.Java的类加载顺序
1.先加载父类的再加载子类的;
2.类中的静态方法、静态代码块在main方法开始执行时就已经执行了,且按顺序执行。
3.类在初始化时,先初始化父类;类初始化先初始化成员变量和非静态代码块,最后执行构造方法。注意子类的构造函数会在第一行隐性的调用父类的构造方法。