动态代理

动态代理

静态代理和动态代理的区别我看就是生成代理的方式变了,相当于原来是固定值,现在全是变量代替了,可以认为是一个生成代理的工厂,但是如果有多个对象需要代理,还是需要手动写很多次,来分别生成真正的代理对象。并没有体现出哪里动态,或者说动态代理的优点呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2022-06-13 10:25:50

同学你好,1、静态代理是需要我们自己实现代理类的逻辑的,且代理类的class信息是在程序运行之前就已经可以获取到的了,.java文件经过编译后可以得到.class文件;

2、而动态代理是不需要我们自己实现代理类的,也就是说使用动态代理方式的话,项目代码中是不存在代理类的.java文件的,既然代理类未由开发者实现,那么程序经过编译之后肯定也不会有代理类的.class文件,也就是说经过编译之后程序未启动运行之前,关于代理类的信息我们一无所知,它是在程序运行过程中需要用到的时候才会由jvm动态生成的,而且生成之后也只存在于内存中,不会写到磁盘保存成.class文件,更加不会保存为.java文件。

    在程序重启,这个代理类的class信息从内存中被卸载之后,关于这个代理类的信息就没有了,只有当代码再次访问到代理对象时,才又会重新生成代理类的class信息。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师