类名.class

来源:互联网 发布:sqlserver已停止 编辑:程序博客网 时间:2024/06/13 17:30

类名.class是class对象的句柄,每个被加载的类,在jvm中都会有一个class对象与之对应。如果要创建新的对象,直接使用class对象的局部class.forName即可,不需要new 类名。用class对象表示类的类型信息。

class对象:

java生成class对象和生成实例(instance)对象不同,要先生成class对象,再生成instance对象。

class对象生成方式:

1.class.forName(“类名字符串”)(就是包名+类名);——class的静态方法,用类的名字获取class实例,必须将string类型强转才可以获取Class<T>,需抛出ClassNotFoundException异常,该方法可以初始化静态域。

2.类名.class;对基本类型的封装类,还可以采用.TYPE获取对应的基本数据类型的class实例,通过这种方式获取的是类的字面常量。该方法不会初始化静态域。

3.实例对象.getClass();三种生成class对象的方法效果一样。

静态方法属性初始化,是在加载类时初始化的;非静态方法属性初始化,是new类实例对象时加载的。编写一个新的java类时,jvm会编译成class对象,存放在内存中的同名class文件中,。在运行时,当需要生成这个类的对象,jvm会先检查内存中是否已装载,若未装载,则把.class文件装入内存中,根据class文件生成实例对象。

newInstrance()调用内中缺省的构造方法,若实例对象中有自定义构造方法(除重写和默认构造方法外)创建此class对象所表示的一个新实例。