您的位置:首页 > 编程语言 > Java开发

java中Class.forName("xxx")和ClassLoader().loadClass("xxx")的区别

2017-01-04 16:12 288 查看
一、首先,查看Class类中的forName方法,可以发现有如下三个方法,但是我们通常用的是只有一个参数的方法。

  


  简单介绍一下这三个方法:

    1.第一个方法Class.forName("xxx")等同于第二个方法Class.forName("xxx",true,this.getClass().getClassLoader()),第二个布尔类型的参数表示装载该类的时候,是否初始化该类,即是否调用类中的static静态块函数及初始化静态成员变量;

     2.第三个方法forName0是一个native方法,也就是第二个方法内部调用的。

二、查看ClassLoader().loadClass()方法,可以从下面源码看出,并没有指定是否初始化类的参数,只有通过clazz.newInstance()才能够初始化类。

  


  因此,可以说与Class.forName("xxx", false, ,this.getClass().getClassLoader())原理是基本相同的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐