| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> java动态代理学习 -> 正文阅读 |
|
[Java知识库]java动态代理学习 |
java动态代理学习学习资料: Java反序列化漏洞专题-基础篇(21/09/05更新类加载部分)_哔哩哔哩_bilibili 首先有个接口
然后我们建一个类
直接调用有类之后,我实例化一个对象,然后调用其中的方法
这是比较简单的方法,然后接下来我们通过别的类间接调用 间接调用首先来说间接调用, 间接类 调用链
创建好间接类之后,测试Test.java
回显 但是静态代理有个缺陷,就是如果我们的IUser接口中有很多类,那么其实现类 而动态代理可以解决这个问题 动态代理调用链 动态代理需要用到一个接口:
我们要实现这个接口,用
然后开始运行ProxyTest.java 注意一个函数Proxy.newProxyInstance,跟进看一下 其需要三个参数,(类加载器,接口,InvocationHandler),前两个参数通过java反射可以得到,而后面这个
然后就可以通过b来进行调用,比如b.show(),b.create() invoke注意,这里我们的间接类
具体的细节不用深究,这个方法会将外部调用的方法的名字(比如show()),传入method,执行 最后的思考为什么要这个动态代理? 比如我们需要调用B.f,入口类A,可以向A传进去Object,A[O] 当O是一个动态代理类的时候,O中有invoke方法,利用invoke的自动执行 O[B].invoke–>B.f invoke当遇到外部调用的时候,就会自动执行 这个和反序列化的时候自动调用readObject用法差不多 学习链接大佬讲得很好,建议看看原视频 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:32:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |