首页 热点资讯 义务教育 高等教育 出国留学 考研考公

java反射究竟消耗多少效率

发布网友 发布时间:2022-04-21 23:42

我来回答

1个回答

热心网友 时间:2022-05-26 12:33

首先明确概念
String str = new String();
上面的String称为‘类’,str指向的目标称为‘实体’。到此无法理解的话,请温习java面向对象的基础后再往下阅读。
反射实现的核心是Class类。运行时,每一个类都对应一个Class实体,利用这些实体完成反射行为。这些实体是在jvm进行类加载时完成创建的,不论是否有反射操作,所以和反射的开销无关。

反射机制是对人来说的一种逻辑特征,对计算机来说,和普通的方法调用没有任何区别,所以在编译阶段的开销差距不大,可能会更小(因为引包更少)。
java是强类型语言,反射能够在使用上弱化这种‘强’。正常的实体创建和方法调用,是通过地址直接调用的,而反射是通过字符串的匹配来寻址,再按地址调用,中间多出一步寻址。寻址的开销在执行实体内部方法以及静态方法时和Map类的键值对寻址开销相同,基本可以忽略。构造方法稍微复杂一点,但差距也不大。
综上,就本人考虑到的内容,反射相比直接调用,只增加了简单几步寻址过程,不会对效率造成太大影响。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com