当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象

来源:2-1 Class类及对象实例化

mahsiaoko

2020-08-14 23:38:30

老师,您好!这是我在一个问题下看到的回答,这句话有点不理解,一个类的Class对象是在编译完成生产.class文件之后生成的吗?.class文件不是二进制的吗?那这个Class对象是以什么方式存在?Class.forName()是对编译完成之后的.class文件进行操作吗?就是说是从.class文件中获得Class对象?

写回答

4回答

好帮手慕阿满

2020-08-15

同学你好,newInstance实例对象时,是调用类中的无参构造方法完成实例化操作,这个过程中没有用到new。

祝:学习愉快~

0

好帮手慕阿满

2020-08-15

同学你好,关于同学的问题:

Class对象是编译完成.class文件后产生的。

.class是二进制字节码文件。

Class对象是由java虚拟机,生成.class文件的时候创建的,保存在同名的.class文件中。

Class.forName()是从.class文件中获取Class对象。


Class employeeClass= Class.forName("com.imooc.reflect.entity.Employee");

employeeClass对象是编译Employee类后产生的Class对象。


Class.forName()返回的是Class类的对象,该对象是com.imooc.reflect.entity.Employee类编译后的Class对象,通过该Class对象可以newInstance实例化一个Employee对象。


祝:学习愉快~

0
hahsiaoko
h 谢谢老师,调用newInstance实例化一个对象的原理是怎样的?这个过程会用到new吗
h020-08-15
共1条回复

mahsiaoko

提问者

2020-08-14

Class.forName返回的是类还是对象,视频中说是Class对象,既然是Class对象,为什么还需要调用newInstance进行实例化?

0

mahsiaoko

提问者

2020-08-14

Class employeeClass= Class.forName("com.imooc.reflect.entity.Employee");

这里的employeeClass是从编译之后的.class文件获得的吗?

0

0 学习 · 16556 问题

查看课程