Java反射作用原理:
反射机制在运行时,对于任意一个类,都能够知道这个类的所有属性和方法:
对于任意个对象,都能够调用它的任意一个方法,在Java中,只要给定类的名字,
就可以通过反射机制来获得类的所有信息
反射的实现方式:
Class.forName("类的路径");
类名.class
对象名.getClass()
基本类型的包装类,可以调用包装类的Type属性来获取该包装类的Class对象
反射机制的优缺点:
优点:
能够运行时动态获取类的实例,提高灵活性
与动态编译结合
缺点:
使用反射
性能较低,需要解析字节码,将内存中的对象进行解析(编译器不会对代码优化,写成什么样就是什么样)
解决方案:
通过setAccessible(true)关闭JDK的安全检查来提升反射速度;
多次创建一个类的实例,有缓存会快很多
ReflectASM工具类,通过字节码生成的方式会加快反射速度,但相对不安全,破坏了封装性
(因为通过反射可以获得私有方法和属性)
标签:反射,Java,对象,包装,任意,Class From: https://www.cnblogs.com/doremi429/p/16833755.html