一.类加载的一般过程:
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:
本文详细阐述了Java类加载的一般过程,包括BootstrapLoader、ExtendedLoader和AppClassLoader各自的作用及搜索目录,以及类加载的三种方式:由JVM初始化加载、通过Class.forName()动态加载和通过ClassLoader.loadClass()动态加载。同时介绍了如何自定义ClassLoader。
850

被折叠的 条评论
为什么被折叠?



