谈谈 Java 反射机制,动态代理是基于什么原理

反射机制是 Java 语言提供的一种基础功能,赋予程序在运行时自省(introspect,官方用语)的能力。通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类定义。

动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的,比如用来包装 RPC 调用、面向切面的编程(AOP)。

实现动态代理的方式很多,比如 JDK 自身提供的动态代理,就是主要利用了上面提到的反射机制。还有其他的实现方式,比如利用传说中更高性能的字节码操作机制,类似 ASM、cglib(基于 ASM)、Javassist 等

相关推荐
David爱编程5 小时前
深入 Java synchronized 底层:字节码解析与 MonitorEnter 原理全揭秘
java·后端
索迪迈科技5 小时前
Protobuf 新版“调试表示为什么有链接?为什么会打码?我该怎么改代码?
java·log4j·apache
云:鸢5 小时前
C语言链表设计及应用
c语言·开发语言·数据结构·链表
a_blue_ice5 小时前
JAVA 面试 MySQL
java·mysql·面试
月阳羊6 小时前
【硬件-笔试面试题-76】硬件/电子工程师,笔试面试题(知识点:H桥驱动电路的设计要点)
java·单片机·嵌入式硬件·面试·职场和发展
离越词6 小时前
C++day8作业
开发语言·c++·windows
赵星星5206 小时前
MySQL的默认隔离级别:为什么是可重复读(RR)而非读已提交(RC)?
java
用户2018792831676 小时前
故事:公司的 "私人储物柜" 系统(ThreadLocalMap)
android·java
℃CCCC6 小时前
请求库-axios
开发语言·华为·网络请求·harmonyos·deveco studio·axios请求·arkts编程
ling__i6 小时前
java day18
java·开发语言