Class.forName 和 import 的区别

1.  实现效果不同。

转载: https://bbs.csdn.net/topics/190137104

Class.forName()是java反射机制下的方法,我们可以不通过new关键字,而利用一个包含包路径的完整类名获取这个class类对象,有这个Class对象当然可以获得相应的类的实例(在有无参构造函数的情形下)。

import  需要你在写代码时候了解这个类的属性和方法,才能使用。

而后者,可以在你完全不知道该类实现的情况下,使用它。
查API你可以知道,可以通过其他的一些方法获取这个类的构造函数、成员函数的函数名、参数个数、类型、返回类型等等。

而import是当你要用到java类库或者是其他包里面的类时,需要添加上。“静态的加载方式”当程序执行时,去相应的路径寻找这个类的实现体。

而class.forName()会加载类,这是一个“动态的加载方式”!加载类的时候,会初始化一个Class对象(注意不是类的实例)。当你不需要创建任何实例,而需要jvm去做一些事情的时候,使用class.forName()非常有用,这就是为什么数据库的驱动程序都是用这种形式来加载,因为加载驱动程序不需要创建对象实例。”

猜你喜欢

转载自blog.csdn.net/qq_38719039/article/details/82622706