深入理解JVM类加载器

一.类加载的一般过程:

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:

猜你喜欢

转载自logking2340.iteye.com/blog/2224788