美文网首页
反射相关

反射相关

作者: 摸摸脸上的胡渣 | 来源:发表于2020-03-04 21:28 被阅读0次

反射的应用

  1. ide里面的自动提示,我们在键入代码时,其实ide对应的程序就处于运行期,通过收集我们的键入,来推测键入的代码是否是一个变量,如果是一个变量的话,在键入"."以后,就会通过反射获取相应的Class对象,来进行相关的提示。
  2. IoC中对象的生成,就是通过反射。
    所有类的相关信息,都只有在spring启动时,才能确定。每个项目注入的bean不同,但最终的伪代码是一致的,伪代码中为了注入真实的对象,不可能针对不同的项目编写相关的new ClassName类似的高度耦合的代码,只能用反射来获取相关的实例对象。
    相关的伪代码
<bean id="courseService" class="com.qcjy.learning.service.impl.CourseServiceImpl">
     <!-- 控制调用setCourseDao()方法,将容器中的courseDao bean作为传入参数 -->
     <property name="courseDao" ref="courseDao"></property>
</bean>
string class1 = "xxx.xxx.courseService";
string class2 = "xxx.xxx.courseDao";
Class clazz1 = Class.forName(class1);
Class clazz2 = Class.forName(class2);
Method method = clazz1.getMethod(class1 setcourseDao 相关方法);
method.invoke(clazz1, clazz2);

反射为什么慢

  1. 反射底层会调用cpp代码,JVM在执行java和cpp代码时的上下文信息、相关组件肯定是不一样的,切换上下文信息和相关组件意味着时间消耗->性能损耗->慢。
  2. Method.invoke()源码中,形参是Object类型的可变长参数,Object对象在具体使用时,会进行强制类型转换,意味着时间消耗->性能损耗->慢。

相关文章

  • 反射相关

    1、对比两个对象是否同一类型,用字节码对比:获取对象字节码用getClass方法,对比时用双等号,因为在环境中,同...

  • 反射相关

    Class 所谓的Class对象就是Class文件在内存中的实例。 Class对象获取的三种方式 Entity e...

  • 反射相关

    反射的应用 ide里面的自动提示,我们在键入代码时,其实ide对应的程序就处于运行期,通过收集我们的键入,来推测键...

  • Java反射相关

    //获取超类的泛型参数的实际类型Class c = this.getClass();//获取当前类类型//P...

  • 反射相关类

    1.获取Class类型的对象 Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建...

  • 一周岁前做好两件事,孩子就不会语言迟缓,保证口齿伶俐

    与语言发展相关的原始反射有四个:张口反射、足跖反射、抓握反射和手拉反射,每个反射的发生、发展和整合都是次第进行的,...

  • 反射相关api总结

    概述 定义 JAVA反射机制[https://baike.baidu.com/item/JAVA%E5%8F%8D...

  • 《Oracle Java SE编程指南》26-01:反射的概念

    内容导航: 前言 1、Java反射的概念 2、Java反射的作用 3、Java反射相关API 前言 我们回忆一下在...

  • Java 反射机制(二)

    前言 在上篇 Java 反射机制(一) 介绍了一些 Java 反射相关的常用 API ,在知道了如何去使用反射之后...

  • 一个小动作,解除眼疲劳

    人的手指、手掌有许多与眼睛相关的反射区、经络、穴位,手指护眼操就是通过刺激与眼睛相关的反射区来达到消除疲劳的...

网友评论

      本文标题:反射相关

      本文链接:https://www.haomeiwen.com/subject/ofmilhtx.html