类加载器,类加载
分享于 点击 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()方法,即使有,有那么多的儿子交给那一个呢?所以干错就不叫给儿子处理了.
类加载器委托机制的好处?
集中管理,如果我们写了几个类加载器,都去加载某个类,那么内存中就有多份这个类的字节码
相关文章
- 暂无相关文章
用户点评