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

上一篇:反射


下一篇:dado精美标志作品