java高新之类加载器
2015-04-03 23:15
197 查看
1、类加载器:类加载器就是加载类的工具。当程序需要的某个类,那么需要通过类加载器把类的二进制加载到内存中.类加载器也是Java类。
2、类加载器的关系图:
3、类加载器原理:
(1)当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢?
A、首先当前线程的类加载器去加载线程中的第一个类。
B、如果类A中引用了类B,Java虚拟机将使用加载类A的类装载器来加载类B。
C、还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类。
(2)每个类加载器加载类时,又先委托给其上级类加载器。
A、当所有父类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛ClassNotFoundException,不是再去找发起者类加载器的子类,因为没有getChild方法,即使有,那有多个子类,找哪一个呢?
B、对着类加载器的层次结构图和委托加载原理,解释先前将ClassLoaderTest输出成jre/lib/ext目录下的itcast.jar包中后,运行结果为ExtClassLoader的原因。
补充:委托机制有什么好处?集中管理,如果我们写了几个类加载器,都去加载某个类,那么内存中就有多份这个类的字节码,而通过委托机制可以保证只需一份字节码。
2、类加载器的关系图:
3、类加载器原理:
(1)当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢?
A、首先当前线程的类加载器去加载线程中的第一个类。
B、如果类A中引用了类B,Java虚拟机将使用加载类A的类装载器来加载类B。
C、还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类。
(2)每个类加载器加载类时,又先委托给其上级类加载器。
A、当所有父类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛ClassNotFoundException,不是再去找发起者类加载器的子类,因为没有getChild方法,即使有,那有多个子类,找哪一个呢?
B、对着类加载器的层次结构图和委托加载原理,解释先前将ClassLoaderTest输出成jre/lib/ext目录下的itcast.jar包中后,运行结果为ExtClassLoader的原因。
补充:委托机制有什么好处?集中管理,如果我们写了几个类加载器,都去加载某个类,那么内存中就有多份这个类的字节码,而通过委托机制可以保证只需一份字节码。
相关文章推荐
- 黑马程序员_ java高新之类加载器
- 黑马程序员-Java基础加强之类加载器
- Java基础加强之类加载器
- java之类加载器
- java基础之类加载器
- Java进阶之类加载器
- Java高新技术之类加载器
- java之类加载器classLoader
- 黑马程序员——java加强之类加载器
- Java学习之类加载器
- 黑马程序员-Java高新技术之类加载器和代理
- 黑马程序员---java高新技术之类加载器
- java之类加载器
- 黑马程序员——java高新(枚举、内省、注解、类加载器)
- 黑马程序员-----java提高之类加载器&代理
- Java基础加强之类加载器
- 黑马程序员之Java基础加强之类加载器
- 黑马程序员--【强哥笔记】系列之Java高新技术笔记之类加载器(第7天)
- java基础学习笔记之类加载器
- 深入JAVA虚拟机之类加载器