关于java.lang.Class 类的Class对象
liy_j 2011-12-16 03:09:03 一种说法:
Class对象是java.lang.Class<T>这个类生成的对象,Class 类的实例表示正在运行的 Java 应用程序中的类和接口。Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。这是JAVA API上这么说的,也就是说Class对象是在加载时才产生的。
另一种说法是:
每个类都有一个class对象。换言之,每当编写并且编译了一个新类,就会产生一个class对象(被保存在一个同名的.class文件中)。在运行时,当我们想生成这个类的对象时,运行这个程序的Java虚拟机首先检查这个类的class对象是否已经加载。如果尚未加载,JVM就会根据类名查找.class文件,并将其载入,一旦某个类的class对象被载入内存,它就被用来创建这个类的所有对象。这种说法中的Class对象是在编译后产生的并且保存在.class文件中。
小弟想知道,这两个Class对象是否是同一个对象?并且Class对象是在哪个阶段产生的?加载时还是编译后??