一.[color=green]定义[/color]:寻找类或接口字节码文件进行解析并构造JVM内部对象表示的组件。
二.[color=green]组成[/color]:
java类装载器有三个装载器类组成:根装载器(Bootstrap Loader),扩展类装载器(ExtClassLoader)和系统类装载器(AppClassLoader);
1.根装载器: 是用C++编写的,装载jre中的核心类库,如rt.jar、charsets.jar等.
2.扩展类装载器: 装载jre目录下的ext中的jar类包.
3.系统类装载器:装载ClassPath路径下的类包.
三.[color=green]关系[/color]:
[img]http://dl.iteye.com/upload/attachment/288305/66184150-c895-34c8-974a-9861c70d7876.png[/img]
四.[color=green]工作过程[/color]:
1. jvm装载类时采用 ‘全盘负责委托机制’,即装载时先由父装载器寻找装载目标类,只有在找不到的情况下才从自己的类路径中寻找并装载目标类。
2.装载一个类时,首先要装载该类的基类及其接口。
五.[color=green]装载方式[/color]:
1.Java 基础类由根装载器在虚拟机启动时一次性载入。
2.包含 main() ,new的入口类由ClassLoader的 loadClass() 方法载入。
3.调用 Class.forName() 方法的类根据指定的 ClassLoader 参数,指定用什么类装载器来装载指定类。
二.[color=green]组成[/color]:
java类装载器有三个装载器类组成:根装载器(Bootstrap Loader),扩展类装载器(ExtClassLoader)和系统类装载器(AppClassLoader);
1.根装载器: 是用C++编写的,装载jre中的核心类库,如rt.jar、charsets.jar等.
2.扩展类装载器: 装载jre目录下的ext中的jar类包.
3.系统类装载器:装载ClassPath路径下的类包.
三.[color=green]关系[/color]:
[img]http://dl.iteye.com/upload/attachment/288305/66184150-c895-34c8-974a-9861c70d7876.png[/img]
四.[color=green]工作过程[/color]:
1. jvm装载类时采用 ‘全盘负责委托机制’,即装载时先由父装载器寻找装载目标类,只有在找不到的情况下才从自己的类路径中寻找并装载目标类。
2.装载一个类时,首先要装载该类的基类及其接口。
五.[color=green]装载方式[/color]:
1.Java 基础类由根装载器在虚拟机启动时一次性载入。
2.包含 main() ,new的入口类由ClassLoader的 loadClass() 方法载入。
3.调用 Class.forName() 方法的类根据指定的 ClassLoader 参数,指定用什么类装载器来装载指定类。