码迷,mamicode.com
首页 > 其他好文 > 详细

类加载器

时间:2018-03-06 17:13:33      阅读:146      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!