其他分享
首页 > 其他分享> > new 和Class.forName()有什么区别?(转)

new 和Class.forName()有什么区别?(转)

作者:互联网


首先,newInstance( )是一个方法,而new是一个关键字;


其次,Class下的newInstance()的使用有局限,因为它生成对象只能调用无参的构造函数,而使用 new关键字生成对象没有这个限制。
简言之:
newInstance(): 弱类型,低效率,只能调用无参构造。
new: 强类型,相对高效,能调用任何public构造。
Class.forName(“”)返回的是类。
Class.forName(“”).newInstance()返回的是object 。


问题:为什么在加载数据库驱动包的时候有用的是Class.forName( ),却没有调用newInstance( )?
在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。
通过查询 Java Documentation 我们会发现使用 Class.forName( ) 静态方法的目的是为了动态加载类。
通常编码过程中,在加载完成后,一般还要调用 Class下的 newInstance( ) 静态方法来实例化对象以便操作。因此,单使用 Class.forName( ) 是动态加载类是没有用的,其最终目的是为了实例化对象。

 

转:https://blog.csdn.net/qq_36473318/article/details/83549589?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.not_use_machine_learn_pai

标签:forName,newInstance,调用,new,Class,加载
来源: https://www.cnblogs.com/listenerxx/p/14250567.html