高新技术:类加载器



类加载器的委托机制
当java中要加载一个类时,每个类加载器加载类时,先委托给其上级类加载器。就是父类先加载最后才轮
到发起的的类加载器。 BootStrap--->ExtClassLoader--->AppClassLoader


这个委托机制看明白啊哟

Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,

每个类负责加载特定位置的类:

BootStrap,ExtClassLoader,AppClassLoader

类加载器也是java类,所以类加载器也要被加载,所以必须有第一个类加载器不是java

这正是BootStrap

Java虚拟机中的所有类加载器采用具有斧子关系的树形结构进行组着。

Java虚拟机中的所有类加载器采用具有父子关系的树形结构进行组织,在实例化每个类加载器对象时,需要为其指定一个父级类加载器对象或者默认采用系统类加载器为其父级类加载。

类加载器的委托机制:具体如下


类加载器的委托机制
当java中要加载一个类时,每个类加载器加载类时,先委托给其上级类加载器。就是父类先加载最后才轮
到发起的的类加载器。 BootStrap--->ExtClassLoader--->AppClassLoader



当Java虚拟机要加载一个类时,到底该派哪个类加载器去加载呢?
1.首先是当前线程的类加载器去加载线程中的第一个类。
2.如果类A中引用了类B,Java虚拟机将使用加载类A的类加载器来加载类B。
3.还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类。

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

基本上所有的类加载器都是 java.lang.ClassLoader类的一个实例。下面详细介绍这个 Java 类。

java.lang.ClassLoader类介绍

java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个 Java 类,即 java.lang.Class类的一个实例

模板模式:

所谓模板模式,就是在父类中定义算法的主要流程,而把一些个性化的步骤延迟到子类中去实现,父类始终控制着整个流程的主动权,子类只是辅助父类实现某些可定制的步骤。 


 ------- android培训、 java培训、期待与您交流! ----------

你可能感兴趣的:(高新技术:类加载器)