首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师——高新技术(类加载器)

2013-10-08 
黑马程序员——高新技术(类加载器)------- android培训、java培训、期待与您交流! ----------类加载器:1、java

黑马程序员——高新技术(类加载器)

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

类加载器:

1、java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap------>ExtClassLoader-------->AppClassLoader;

2、类加载器也是java类,因为其它是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器,就是BootStrap(不是java类)。

类加载器的委托机制:

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

1、首先当前线程的类加载器去加载线程中的第一个类;

2、如果类A中引用了类B,java虚拟机将使用加载类A的类加载器来加载类B;

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

4、每个类加载器加载类时,又先委托给其上级类加载器(当所有祖宗类加载器没有加载到类,就回到发起者类加载器,如还加载不了,则抛ClassNotFoundException,而不是再去找发起者类加载器的的儿子)。

类加载器管辖范围:

黑马软件工程师——高新技术(类加载器)


获得类加载器实例:

package cn.itcast.day2;import java.util.Date;public class ClassLoaderTest {public static void main(String[] args)throws Exception {/*1、执行此步骤时,若先用加密后的文件ClassLoaderAttachment.class覆盖掉cn.itcast.day2下的ClassLoaderAttachment.class文件,则父类加载器加载此文件时就会报错,无法识别,因为已加密;2、执行此步骤时,如先删掉cn.itcast.day2下的ClassLoaderAttachment.class文件,则父类加载器就无法找到,这时就会由自己定义的加载器进行加载。*/Class clazz=new MyClassLoader("itcastlib").loadClass("cn.itcast.day2.ClassLoaderAttachment");Date d1=(Date)clazz.newInstance();System.out.println(d1);}}



热点排行