简单介绍Java ClassLoader

来源:互联网 发布:昆山宏观数据库 编辑:程序博客网 时间:2024/06/01 07:55

ClassLoader是java的类加载器,当我们写完java代码编译成功后,会生成.class文件,当程序运行的时候,会使用类加载器来加载class文件,使得内存中有相关可以调用的函数。

java默认带了3个ClassLoader,BootStrap ClassLoader,Extension ClassLoader和App ClassLoader。

1.BootStrap ClassLoader:称为启动类加载器,是Java类加载层次中最顶层的类加载器,默认加载JAVA_HOME/jre/classes目录下的jar
2.Extension ClassLoader:称为扩展类加载器,负责加载Java的扩展类库,默认加载JAVA_HOME/jre/lib/ext/目下的所有jar。
3.App ClassLoader:称为系统类加载器,负责加载应用程序classpath目录下的所有jar和class文件。

ClassLoader加载类是用双亲委托模型加载,即从顶层开始加载,当BootStrap ClassLoader加载不到则让Extension ClassLoader加载,若Extension ClassLoader也加载不到则让App ClassLoader加载,若App ClassLoader加载不到,则让用户自定义的ClassLoader进行加载。

当父类加载了class后,子类则不能加载相同的class。

若想要定义自己的ClassLoad则需要继承java.lang.ClassLoader,然后重写findClass函数。

原创粉丝点击