什么是反射机制?
能够分析类能力的程序称为可反射(reflective)。
Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个类的能力,可以了解任意一个对象所属的类,可以调用任意一个对象的属性和方法。
反射机制的功能极为强大,可以用它做到以下几点:
- 在运行时分析类的能力。
- 在运行时检查对象。例如,编写一个适用于所有类的toString方法。
- 实现泛型数组操作代码。
- 利用Method对象。
反射的优点
反射机制最早出现在Java2中,反射机制的出现提升了程序的灵活性和扩展性,同时降低了模块的耦合性。
反射的缺点
- 反射机制中包含了一些动态类型,由于Java虚拟机不能对这些动态代码进行优化,因此,反射操作的效率比较低。
- 由于反射破环了Java程序结构的抽象性,因此使用反射可能会导致意想不到的后果。所以,对反射的使用应当慎之又慎。
- 反射机制的默认行为受限于Java的访问控制。
为什么反射比较慢?
- 反射机制中包含了一些动态类型,由于Java虚拟机不能对这些动态代码进行优化,因此,反射操作的效率比较低。
- 使用反射会涉及到拆箱、装箱操作,这些动作不仅消耗时间,而且会产生很多对象,从而导致JVM进行GC,最终导致效率下降。
总而言之,反射机制代码复杂,速度较慢,但会使程序更加灵活;对于反射机制的使用,应当慎重。
如果你已经看到了这里,那可以麻烦您点个赞吗?笔者在这里先行谢过