classloader

java默认的classloader:java

1.BootStrap ClassLoader:称为启动类加载器,是Java类加载层次中最顶层的类加载器,负责加载JDK中的核心类库,如:rt.jar、resources.jar、charsets.jar等,可经过以下程序得到该类加载器从哪些地方加载了相关的jar或class文件。jvm

2.Extension ClassLoader:称为扩展类加载器,负责加载Java的扩展类库,默认加载JAVA_HOME/jre/lib/ext/目下的全部jar。spa

3.App ClassLoader:称为系统类加载器,负责加载应用程序classpath目录下的全部jar和class文件。ssl

java的classloader采用的双亲委托机制,每一个classloader实例都包含一个父classloader的引用,顶层classloader没有父类加载器,双亲机制原理以下:io

当须要加载某个类时,自上而下,先由父加载器进行加载,若是没有再往下逐级查找加载,直到委托者加载某个类,若是还没找到,直接抛出classnofound异常。class

classloader和class彻底相同时,jvm才认为这个类是相同的,不然会出现类型转换异常。原理

相关文章
相关标签/搜索