Java反射机制
2017-09-05 本文已影响0人
QGUOFENG
在Java中对Class有两种操作方式,对Class类进行直接调用和间接调用。
举个小栗子:
下面有个Cat类有两个构造函数,一个方法,和3个属性
直接调用:
间接调用:
ClassLoader类装载器
反射的实现:Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过该对象可以获知Class的结构信息,如构造函数、属性和方法。然后通过这个与Class相关的元信息对象间接调用Class对象的功能。
ClassLoader的工作机制:
寻找类的字节码文件并构造出类在JVM内部表示对象的组件。类装载器将一个类装入JVM中,需要以下步骤
1.装载:查找和导入class文件
2.链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的
---------》校验:检查载入class文件数据的正确性
---------》准备:给类的静态变量分配空间
---------》解析:将符号引用转换成直接引用
3.初始化