反射 :框架设计的灵魂
* 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码。
* 反射:将类的各个组成部分封装为其他对象,这就是反射机制。
* 好处 :
1.可以在程序运行过程中,操作这些对象。
Java的反射机制,操作的就是这个.class文件,
首先加载相应类的字节码(运行程序的过程中,.class文件的字节码会加载到内存中),
随后解剖(反射 reflect)出字节码中的构造函数、方法以及变量(字段),
或者说是取出封装成对象。
2. 可以解耦,提高程序的可扩展性。
- java代码在计算机中经历的三个阶段
- 反射获取Class对象的方式如下:
- Class.forName(“全限定名”):将字节码文件加载进内存,返回Class对象 。
- (多用于配置文件,将类名定义在配置文件中,读取文件,加载类
- 类名.class:通过类名的属性class获取
- 多用于参数的传递
- 对象.getClass():getClass()方法在object类中定义着。
- 多用于对象的获取字节码的方式
同一个字节码文件在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。
- 获取Class对象之后,了解Class对象功能:
- 获取功能:
- 获取成员变量们
- Field[] getFields()
- Field getField(String name)
- Field [] getDeclaredFields()
- Field getDeclaredField(String name)
- 获取构造方法们
- 获取成员方法们
- 获取类名
- 获取成员变量们
视频链接:
https://www.bilibili.com/video/BV1C4411373T?p=3&spm_id_from=pageDriver