反射机制 动态代理

反射机制是什么,动态代理怎么理解?

  • 反射是java提供的一种基础功能,提供程序自省的能力。通过反射可以用来访问类的定义,类的属性,动态构建对象等。

  • 动态代理是一种能够在运行时动态构建代理,动态构建代理对象进行动态的访问,在很多的框架里使用,比如RPC框架、AOP、数据库访问等。

  • 反射机制:

  • 反射可以运行时获取一个对象所属的类
  • 反射可以运行时动态创造一个类的对象。
  • 反射可以运行时动态获取一个类的方法和属性(公共的)
  • 反射可以执行一个对象的方法。通过invoke可以调用反射获取到的方法。

invoke如何实现动态调用一个对象的方法?

  • invoke 权限检查。AccessibleObject 类是 Field、Method 和 Constructor 对象的基类。它提供了将反射的对象标记为在使用时取消默认 Java 语言访问控制检查的能力。检查AccessibleObject 的override属性,false表示需要调用权限检查。true不需要。
  • 权限检查过后,反射工厂方法生成具体的MethodAccessor的实现。MethodAccessor的实现有两种:c语言实现的本地方法和java实现的MethodAccessor。由于本地的实现在jvm启动阶段执行效率高,故jvm开始阶段的调用的invoke方法由本地实现,当调用次数超过阈值改为java实现MethodAccessor。
  •  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值