在运行时加载,探知,使用编译期间完全未知的 classes
允许运行时的java程序对自身进行“自审”
反射是运行期间,识别类的能力(解析出类中的元数据)
编程语言的分类:
动态语言:JavaScript
在编译后可以随时修改的语言
非动态语言:java
如何理解反射:镜子
关于反射的小结:
1,通过反射,让java可以完成动态语言的部分功能
2,通过反射,可以实现一些特殊的功能,例如调用私有方法,属性
3,很多框架都实现反射来实现
4,如果某个功能可以不使用反射完成,尽量不使用反射(1,麻烦 2,效率低)