概述
1.什么是反射?
Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。
对于任何一个对象,我们都能够对它的方法和属性进行调用。
我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。
通俗的理解:获得这个对象后,能获得这个对象的所有信息
2.反射机制获取Class对象的三种方式:
Person person = new Person();
//1、通过Object类的getClass()方法:(需要先实例化一个对象)
Class clazz1 = person.getClass();
//2、通过对象实例方法获取对象:(需要先实例化一个对象)
Class clazz2 = person.class; 类名点
//3、类的全路径:(不许呀实例对象)
Class clazz3 = Class.forName(“com.cn.Person”);
3.反射机制的优缺点
优点:
1)能够运行时动态获取类的实例,提高灵活性;
2)与动态编译结合
缺点:
1)使用反射性能较低,若方法区没有加载过,有一个加载的过程。
4.提升反射性能解决方案
1、通过setAccessible(true)关闭JDK的安全检查来提升反射速度;
2、多次创建一个类的实例时,有缓存会快很多
3、ReflflflflectASM工具类,通过字节码生成的方式加快反射速度
2)相对不安全,破坏了封装性(因为通过反射可以获得私有方法和属性)
最后
以上就是耍酷柜子为你收集整理的反射机制常见问题1.什么是反射?2.反射机制获取Class对象的三种方式:3.反射机制的优缺点4.提升反射性能解决方案的全部内容,希望文章能够帮你解决反射机制常见问题1.什么是反射?2.反射机制获取Class对象的三种方式:3.反射机制的优缺点4.提升反射性能解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复