欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

类加载器,类加载

来源: javaer 分享于  点击 24442 次 点评:26

类加载器,类加载


-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------

什么是类加载器?

类加载器就是加载类的工具


类加载器的作用是什么?

java中编程中,我们用到一个类时java虚拟机通过类的加载器把这个类的字节码加载到内存中。

 

Java虚拟机中有哪些类加载器?

Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类加载器负责加载特定位置的类

1.      BootStrap

2.      ExtClassLOader

3.      AppClassLoader

 

类加载器也是类,那么java类的类加载器也是要被类加载器加载的,这个加载器就是BootStrap,它不是java类,不需要被类加载器加载,是嵌套在java虚拟机内核中的程序,java虚拟机一启动,该类就被加载

 

类加载器之间的父子关系和管辖范围图:

 

 

类加载的委托机制:

当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢?

①首先当前线程的类加载器去加载线程中的第一个类.

②如果类A中引用了类B,Java虚拟机将使用加载类A的类加载器加载类B

③还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类.

 

每个类加载器加载类时,又先委托给其上级类加载器.

①当所有祖宗类加载器没有加载到类

,回到发起者类加载器,如果还加载不了,则抛出ClassNotFoundException异常,它不会 去找发起者类加载器的儿子,因为没有getChild()方法,即使有,有那么多的儿子交给那一个呢?所以干错就不叫给儿子处理了.

 

类加载器委托机制的好处?

集中管理,如果我们写了几个类加载器,都去加载某个类,那么内存中就有多份这个类的字节码

 

 

相关文章

    暂无相关文章
相关栏目:

用户点评