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对象,其实只是一个“类”,还并没有对这个“类”实例化,所以需要再次对“类”进行实例化。

参考博客:https://www.cnblogs.com/tech-bird/p/3525336.html

你可能感兴趣的:(Java)