Class.forName()和new关键字的区别

白昼怎懂夜的黑 提交于 2019-12-02 19:45:29

Class.forName(类名) jvm动态的加载一个类。

Class.forName(类名).newInstance() 调用类的无参构造方法返回的是Object对象,需要强转为指定类型。

new 是一个关键字,调用类的构造方法(可以无参的、有参的),返回一个类的对象。

例如

EgClass egClass=(EgClass)Class.forName(“EgClass类名”).newInstance();

问题:为什么有的类使用的时候只需要Class.forName(),不需要Class.forName().newInstance()?如加载数据库驱动时?

因为需要的内容写在了类的静态方法中了。在类的加载过程中,类的静态方法中的代码已经执行过了,不需要再实例化了。

例如:

ClassA  {

       static{

              相关内容

}

}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!