JAVA的类加载机制:
AppClassLoader->ExtClassLoader->BootStrapClassLoader
加载目录
AppClassLoader:java.class.path
ExtClassLoader:java.ext.dirs
BootStrapClassLoader:sun.boot.class.path
每种类加载器都有自己的类加载目录
JAVA类加载器:
AppClassLoader,ExtClassLoader->URLClassLoader->SecureClassLoader->ClassLoader
双亲委派:向上委托查找,向下委托加载. 作用:保护java底层类
类加载过程:加载->链接->初始化
加载:把java字节码数据加载到JVM内存当中,并映射成JVM认购的数据结构
链接:
1、验证:检查加载到的字节信息是否符合JVM规范
2、准备:创建类或者接口的静态变量,并赋初始值,半初始化状态
3、解析:把常量符号引用转为直接引用.即:将栈指针指向堆内存
初始化:执行静态代码块,构造方法及静态变量等
自定义类加载器时,需要继承AppClassLoader