面试题:什么是反射机制?为什么反射慢?

什么是反射机制?

能够分析类能力的程序称为可反射(reflective)。

Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个类的能力,可以了解任意一个对象所属的类,可以调用任意一个对象的属性和方法。

反射机制的功能极为强大,可以用它做到以下几点:

  1. 在运行时分析类的能力。
  2. 在运行时检查对象。例如,编写一个适用于所有类的toString方法。
  3. 实现泛型数组操作代码。
  4. 利用Method对象。
反射的优点

反射机制最早出现在Java2中,反射机制的出现提升了程序的灵活性和扩展性,同时降低了模块的耦合性

反射的缺点
  1. 反射机制中包含了一些动态类型,由于Java虚拟机不能对这些动态代码进行优化,因此,反射操作的效率比较低
  2. 由于反射破环了Java程序结构的抽象性,因此使用反射可能会导致意想不到的后果。所以,对反射的使用应当慎之又慎
  3. 反射机制的默认行为受限于Java的访问控制。

为什么反射比较慢?

  1. 反射机制中包含了一些动态类型,由于Java虚拟机不能对这些动态代码进行优化,因此,反射操作的效率比较低
  2. 使用反射会涉及到拆箱、装箱操作,这些动作不仅消耗时间,而且会产生很多对象,从而导致JVM进行GC,最终导致效率下降。

总而言之,反射机制代码复杂,速度较慢,但会使程序更加灵活;对于反射机制的使用,应当慎重。

如果你已经看到了这里,那可以麻烦您点个赞吗?笔者在这里先行谢过

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小挫折_仅此而已

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值