您的位置:首页 > 编程语言 > Java开发

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的原因。

补充:委托机制有什么好处?集中管理,如果我们写了几个类加载器,都去加载某个类,那么内存中就有多份这个类的字节码,而通过委托机制可以保证只需一份字节码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: