什么是反射?为什么反射慢?

概念

反射机制指的是程序在运行时能够获取自身的信息,在java中,只要给定类的名字,那么就可以通过反射获取类的所有属性和方法。

反射的好与坏

反射的好处就是可以提升程序的灵活性和扩展性,比较容易在运行期干很多事情。
但是也带来了一些问题:

  1. 代码的可读性和可维护性
  2. 反射执行代码的性能低
  3. 反射破坏了封装性

为什么反射慢?

为什么反射慢呢?主要由于以下原因:

  1. 由于反射涉及到动态解析类型,因此不能执行某些Java虚拟机优化例如JIT;
  2. 在反射时,参数需要包装成Object[]类型,但是真正方法执行的时候,有需要拆包成真正的类型,这些动作不仅耗时,而且过程中产生很多对象,对像一多容易导致GC.
  3. 反射调用方法时会从方法数组中遍历查找,并且会检查可见性。

反射的应用场景

  1. 动态代理
  2. BeanUtils的属性拷贝
  3. ORM框架
  4. RPC框架
  5. Spring的IOC/DI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值