Java 类加载器

作用:通过类的的权限定名来获取描述此类的二进制字节流

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。只有当父类加载器无法完成加载请求(如在搜索范围内找不到

指定的类),子加载器才会自己去加载。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。