类加载器

来源:互联网 发布:华大基因数据库 编辑:程序博客网 时间:2024/06/03 22:12

类加载器 --笔记来自黑马视频



作用:负责把磁盘上的class文件加载到JVM中,Class引用字节码。


JVM中的类加载器:

BootStrap:老大。类加载器的祖先。打印它会得到null

负责加载JRE/lib/rt.jar(JDK中绝大部分的类)

ExtClassLoader

负责加载JRE/lib/ext/*.jar

AppClassLoader

负责加载在classpath环境变量中的所有类。



父类委托机制




举个栗子   class A extends HttpServlet{}

:A类放置自己的类加载器上相应的路径,HttpServlet在放置在AppClassLoadar类加载器上的路径,会先加载A类,编译成字节码文件,然后向上寻找,AppClassLoadar类先不找,给父类ExtClassLoader,ExtClassLoader不找,给自己的相对父类Boostrap找,找不到就向下找,ExtClassLoader找不到就向下找,AppClassLoadar类找到了就可以加载成字节码文件了。


总结:jar包什么千万要放好,放在对应的路径,不然就会抛出ClassNotFoundException。因为如果把A类放在了ExtClassLoader对应的路径下,而HttpServlet放置在AppClassLoadar类加载器上的路径,他不会向下找,直接就抛出ClassNotFoundException;


原创粉丝点击