private static void 同一個Class對象測試() {
Class<Class對象Test> a = Class對象Test.class;
Class<Class對象Test> b = Class對象Test.class;
System.out.println(a == b);//true;
Class<Class對象Test> c = null;
try {
c = (Class<Class對象Test>)Class.forName("com.cai.test.Class對象Test");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(a == c);//true;
Class對象Test instance = new Class對象Test();
Class<? extends Class對象Test> d = instance.getClass();
System.out.println(a == d);//true;
}
三種情況都打印了true, 這, 至少說明在上述情況下生成的Class對象一樣的。
百度一下. 生成Class對象的過程其實是如此的:
當我們編寫一個新的java類時,JVM就會幫我們編譯成class對象,存放在同名的。class文件中。在運行時,當需要生成這個類的對象,JVM就會檢查此類是否已經裝載內存中。若是沒有裝載,則把。class文件裝入到內存中。若是裝載,則根據class文件生成實例對象。