动态代理
静态代理和动态代理的区别我看就是生成代理的方式变了,相当于原来是固定值,现在全是变量代替了,可以认为是一个生成代理的工厂,但是如果有多个对象需要代理,还是需要手动写很多次,来分别生成真正的代理对象。并没有体现出哪里动态,或者说动态代理的优点呢?
17
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小尤
2022-06-13 10:25:50
同学你好,1、静态代理是需要我们自己实现代理类的逻辑的,且代理类的class信息是在程序运行之前就已经可以获取到的了,.java文件经过编译后可以得到.class文件;
2、而动态代理是不需要我们自己实现代理类的,也就是说使用动态代理方式的话,项目代码中是不存在代理类的.java文件的,既然代理类未由开发者实现,那么程序经过编译之后肯定也不会有代理类的.class文件,也就是说经过编译之后程序未启动运行之前,关于代理类的信息我们一无所知,它是在程序运行过程中需要用到的时候才会由jvm动态生成的,而且生成之后也只存在于内存中,不会写到磁盘保存成.class文件,更加不会保存为.java文件。
在程序重启,这个代理类的class信息从内存中被卸载之后,关于这个代理类的信息就没有了,只有当代码再次访问到代理对象时,才又会重新生成代理类的class信息。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星