作用:通过类的的权限定名来获取描述此类的二进制字节流
JVM中的每个类都由它的类加载器和类本身唯一确定,不同的类加载器有独立的命名空间,同一个类在不同的类加载器中是不同的。
分类:主要可以分为三类:
1. 启动类加载器(Bootstrap ClassLoader)
由C++实现,是JVM的一部分;用于加载JAVA_HOME/lib中可以被JVM识别的类库到JVM内存中;
2. 扩展类加载器(Extention ClassLoader)
用于加载JAVA_HOME/lib/ext目录下的类库,可被开发者直接使用;
3. 应用程序类加载器(Application ClassLoader)
用于加载用户类路径(由ClassPath指定)的类库;可以被开发者直接使用,默认情况下,如果没有指定自己的类加载器,则使用这个类加载器;
ClassLoader的双亲委派模型:
如果一个ClassLoader收到了一个类加载请求,ClassLoader不会自己去加载类,而是把请求委派给父类ClassLoader去完成。
最终,所有的类加载请求都会传送到Bootstrap ClassLoader。只有当父类加载器无法完成加载请求(如在搜索范围内找不到
指定的类),子加载器才会自己去加载。
时间: 2024-10-13 02:25:19