一.类加载的一般过程:
1.寻找jre目录,寻找jre/client/jvm.dll,并初始化JVM
2.产生一个Bootstrap Loader(启动类加载器)
3.Bootstrap Loader自动加载Extended Loader(标准扩展类加载器),并将其父Loader设置为Bootstrap Loader
4.Bootstrap Loader自动加载AppClass Loader(系统类加载器),并将其父Loader设为Extended Loader
5.最后由AppClass Loader加载
二.类加载器各自搜索的目录:
1.Bootstrap Loader:System.getProperty("sun.boot.class.path")
2.Extended Loader:System.getProperty("java.ext.dirs")
3.AppClass Loader:System.getProperty("java.class.path")
三.类加载有3种方式:
1.由JVM初始化加载:会初始化静态代码块
2.通过Class.forName()方法动态加载:会初始化静态代码块
3.通过ClassLoader.loadClass()方法动态加载:不会初始化静态代码块
四.自定义ClassLoader: