反射
一句话解释什么是反射
反射是Java中的动态相关机制,可以在运行时获得类的构造函数、成员变量和方法的信息,也可以动态创建对象、调用方法、获取或设置成员变量的值,甚至可以调用私有成员变量和方法。
为什么要使用反射?
当我们的程序在运行时,需要动态的加载一些类,这些类可能之前用不到所以不用加载到jvm,而是在运行时根据需要才加载。这个时候反射机制就派上用途了,我们可以通过完全限定名让JVM在服务器找到这个类并进行加载,而不需要在代码里写死。从而体现了Java语言的动态性。
反射的优缺点
- 优点:高度灵活、可扩展、可复用、可维护
- 缺点:性能会下降,增加了安全问题
反射的应用场景
反射是框架设计的灵魂,很多框架的应用都用到了反射原理。
- spring中的xml配置装载bean
- JDBC数据库连接数据库时通过Class.forName() 用反射加载数据库驱动
- Java动态代理机制
- ……