二、Class.forName()和classloader.loadclass区别
1、Classloder.loaderClass(String name)
其实该方法内部调用的是:Classloder. loadClass(name, false)
方法:Classloder. loadClass(String name, boolean resolve)
(1)参数name代表类的全限定类名
(2)参数resolve代表是否解析,resolve为true是解析该类
2、Class.forName(String name)
其实该方法内部调用的是:Class.forName(className, true, ClassLoader.getClassLoader(caller))
方法:Class.forName0(String name, boolean initialize, ClassLoader loader)
参数name代表全限定类名
参数initialize表示是否初始化该类,为true是初始化该类
参数loader 对应的类加载器
3、二者最大区别
Class.forName得到的class是已经初始化完成的;
Classloder.loaderClass得到的class是还没有链接的;
**三、**怎么使用
有些情况是只需要知道这个类的存在而不需要初始化的情况使用Classloder.loaderClass