1. 程式人生 > >Java反射中的建立物件和物件例項化有什麼區別

Java反射中的建立物件和物件例項化有什麼區別

在學習Java反射的過程中,遇到了一點疑惑的地方

//1.獲取Class物件
Class clazz = Class.forName("com.atguigu.java.fanshe.Person");  
//2. 利用Class物件的newInstance方法建立一個類的例項
Object obj =  clazz.newInstance();

平常理解的物件和例項都是一個東西,將一個物件例項化,可以直接使用new關鍵字直接例項化物件,為什麼在Java反射中,出現了兩次一樣的操作,先建立了物件,又再次把物件例項化?

這要說到Class類的理解,Java中,萬物可物件,類其實也是一個物件,而Class類就是用來描述所有類的這麼一個類,每個類在JVM中只有一個Class例項。
所以說通過Class.forName()獲取到的Class物件,其實只是一個“類”,還並沒有對這個“類”例項化,所以需要再次對“類”進行例項化。