各个ClassLoader的作用以及他们之间的关系
2016-07-23 21:50:06 0 举报
ClassLoader是Java运行时的类加载器,负责将字节码文件加载到JVM中。主要有三类:Bootstrap ClassLoader、ExtClassLoader和AppClassLoader。Bootstrap ClassLoader是JVM的一部分,负责加载核心类库;ExtClassLoader是JRE的一部分,负责加载扩展类库;AppClassLoader是自定义的ClassLoader,负责加载应用程序的类库。它们之间的关系是从上到下依次加载,如果一个类已经被加载,则不会重复加载。同时,子ClassLoader可以覆盖父ClassLoader的加载行为,实现灵活的类加载控制。
作者其他创作
大纲/内容
加载类
前提:JDK寻找jre目录,寻找jvm.dll
初始化JVM
继承
Java层面
方式一:命令行启动应用时候由JVM初始化加载(不会执行初始化块)方式二:通过Class.forName()方法动态加载方式三:通过ClassLoader.loadClass()方法动态加载(默认会执行初始化块)
①自动加载Extended Loader,并把它的父类设为:Bootstrap Loader
Extended Loader(标准扩展类加载器ExtClassLoader)
由JVM产生
②自动加载AppClass Loader,并把它的父类设为:Extended Loader
Bootstrap Loader(启动类加载器)
Bootstrap Loader用C语言实现的,所以没有可用的Java形式上的Class可以表示~~
C层面
AppClass Loader(系统类加载器AppClassLoader)
收藏
收藏
0 条评论
下一页