Java动态代理
Java动态代理
@Date 2016.11.24
静态代理
- 提前创建一个代理类,实现和业务逻辑同样的接口
- 传递业务实现类的对象,在调用业务方法前后可以做代理的逻辑
- 扩展原有功能,不侵入原有代码
- 如果需要代理的业务类变多,并且实现方法不一样的情况下,对应的代理类会增多
Java本身动态代理
- 只能代理接口
- 实现java.lang.reflect.InvocationHandler接口
- 通过Proxy.newProxyInstance (obj.getClass().getClassLoader(),obj.getClass().getInterfaces(), InvocationHandler invocationHandler);创建代理类
- 虚拟机自动调用invoke方法
cglib动态代理
- 运行期间动态生成Java字节码
- 不用实现接口,直接底层生成代理类覆盖父类中的方法
- 实现MethodInterceptor接口的intercept方法
- 调用重写方法比JDK本身的代理速度快
- 加载cglib耗时比JDK本身的时间长
- 不适合反复动态生成新的代理类
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java VM 启动参数详解
Java VM 启动参数详解 @Date 2017.05.24 打印输出相关参数 -verbose 打印加载类的详细信息 -verbose:gc 打印虚拟机中GC的详细情况:显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/java.hprof 虚拟机在出现内存溢出异常时Dump 出当前的内存堆转储快照 -XX:+TraceClassLoading 打印加载类的详细信息 -XX:+PrintGCDetails 详细了解GC中的变化 -XX:+PrintGCDateStamps 了解垃圾收集发生的时间,自JVM启动以后以秒计量 -Xloggc:/home/admin/logs/gc.log GC日志文件的路径 涉及堆相关的参数 -server server模式下,新生代选择的是并行GC,旧生代选择的是并行GC client模式下,新生代选择的是串行GC,旧生代选择的是串行GC -Xms2g 堆的初始值2g -Xmx2g 堆的最大值2g...
- 下一篇
python 图片在线转字符画预览
文章链接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 关于python图片转字符画,相信大家都不陌生,经常出现在 n个超有趣的python项目中。 今天我也来实践这个有趣的项目,更进一步的是把这个功能做成一个在线的网站,直接上传图片生成字符画,在线预览可以让更多的人来体验。 体验网址:https://www.manjiexiang.cn/blog/post_img 举个栗子,就是这是一张图片 经过转换成的字符画是这样的,这个txt的文件 代码部分: 使用PIL处理图片,resize方法转成指定宽高 from PIL import Image im = Image.open("qq.png") im = im.resize((width, height), Image.NEAREST) 像素转字符方法,将r,b,g转化为灰度值,然后根据灰度值的大小确定所选字符在ascii_char中的位置。 def get_char(r, g, b, alpha=256): ascii_char = list("$@B%8&WM#*oahk...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路