1、作用 ClassLoader负责向JVM提供所需class及文件对象,所有对象都首先加载到ClassLoader中。 ClassLoader是一个树形结构。 2、分类 ClassLoader分为BootStrap、Extension、App BootStrap---------负责加载jdk的类 Extension----------负责加载/ext下的类 App ----------负责加载用户类 3、获取ClassLoader this.getClass.getClassLoader(); //当前类的ClassLoader Thread.currentThread().getContextClassLoader(); //当前线程的ClassLoader ClassLoader.getSystemClassLoader(); //系统ClassLoader,即App ClassLoader 4、类初始化方法 //4.1、静态类加载 Class cls = Class.forName("com.test.A"); A a = (A)cls.newInstance(); //4.2、静态类加载 ClassLoader cl = this.getClass.getClassLoader();//或者其他两种方式 Class cls = cl.loadClass("com.rain.B"); B b = (B)cls.newInstance(); //4.3、new A a = new A(); |
|