首页 > 其他 > 详细

类加载器

时间:2018-03-06 16:56:14      阅读:251      评论:0      收藏:0      [点我收藏+]
public class TestCL { /* * 类加载:负责将class文件(字节码)加载到内存生成Class对象 工具类。 * JDK规定3种类加载器: * 1.应用类类加载器,AppClassLoader * * 负责加载 /WEB-INF/classes (src编写后位置) 和 /WEB-INF/lib (jar保存位置) * 2.扩展类类加载器,ExtClassLoader * * 负责加载 jdk1.7.0_72\jre\lib\ext (一般没有用) * * 扩展 是 应用 的父加载器 * 3.引导类类加载器,BootstrapClassLoader * * 负责加载 jdk1.7.0_72\jre\lib --> rt.jar (runtime) * * 不是类(由非Java程序编写的) * * 引导 扩展 父类 * * 原则:全盘负责委托机制 * * 全盘负责:A类如果需要使用B类,B类不在内存,需要使用A类的类加载器,加载B类。 * * 委托机制,应用在加载前,先从扩展获取,如果有就直接使用,如果没有在加载。 * ,扩展在加载前,先从引导获取,如果有就直接使用,如果没有在加载。 * 使用此机制,可以保证一个类只能加载一次。 * * */ @Test public void demo01(){ ClassLoader cl = TestCL.class.getClassLoader(); System.out.println(cl); ClassLoader cl2 = TestCL.class.getClassLoader().getParent(); System.out.println(cl2); } @Test public void demo02(){ ClassLoader cl = DNSNameService.class.getClassLoader(); System.out.println(cl); ClassLoader cl2 = DNSNameService.class.getClassLoader().getParent(); System.out.println(cl2); } @Test public void demo03(){ ClassLoader cl = String.class.getClassLoader(); System.out.println(cl); } }

类加载器

原文:http://blog.51cto.com/13579086/2083458

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!