> 文档中心 > Class.forName()简介说明

Class.forName()简介说明

转自:

Class.forName()用法简介说明

下文笔者讲述Class.forName()方法的功能简介说明,如下所示:

class对象简介说明

class对象用于表示类每一个类在JVM中都对应一个class对象jvm中将使用class对象加入到类加载器中注意事项:    1.java程序运行之前,并不会将所有的Class对象放入jvm中    2.每一个****.class类在jvm中只会对应一个Class实例对象    3.Class类只有一个私有构造函数,并且Class对象只能由JVM创建和加载    4.Class类对象功能:运行时提供和获取某个对象的类型信息

获得class对象的三种方法

1.调用Object类的getClass()方法来得到Class对象  如:      ObjectTest t;      Class c1 = t.getClass();2、使用Class类的中静态forName()方法获得与字符串相应的Class对象    如:     Class c2=Class.forName("ObjectTest")      ObjectTest:须是接口或类的名字class.forname()语法:     Class c=Class.forName("类的全限定名")   3、直接使用类名的class   如:     Class c3 = User.class;     Class c4 = int.class;     Class c5 = Double[].class; 

class的功能和方法

Class.forName(xxx.xx.xx):    返回的是一个类Class.forName(xxx.xx.xx)的功能:    JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段Class.forName是一个静态方法,相同能够用来载入类Class.forName语法:     
 Class.forName(String name, boolean initialize, ClassLoader loader)  或 Class.forName(String className)
      name:类的全名,initialize:是否初始化类,loader:载入时使用的类载入器另外一种形式则相当于设置了參数 initialize的值为 true。loader的值为当前类的类载入器

Class.forName()应用场景简介

A a = (A)Class.forName(“pacage.A”).newInstance(); 效果等同于A a = new A();

newInstance和new关键字的区别

Java中工厂模式常使用newInstance()方法来创建对象如 class c = Class.forName(“Example”);factory = (ExampleInterface)c.newInstance();其中ExampleInterface是Example的接口,也写成如下形式:String className = “Example”;class c = Class.forName(className);factory = (ExampleInterface)c.newInstance();----或------String className = readfromXMlConfig;//从xml 配置文件中获得字符串class c = Class.forName(className);factory = (ExampleInterface)c.newInstance();注意事项:    1.使用newInstance()方法时,这个类已经加载连接    而使用new关键字时,这个类可以没有被加载     2.newInstance: 弱类型。低效率。只能调用无参构造。     new: 强类型。相对高效。能调用任何public构造。    3.Class.forName(“”)返回的是类。      Class.forName(“”).newInstance()返回的是object

丽江小吃城