您当前的位置: 首页 >  Java

老王随聊

暂无认证

  • 2浏览

    0关注

    77博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

面试必考之Java的cglib和jdk动态代理对比

老王随聊 发布时间:2022-04-29 12:39:27 ,浏览量:2

1、作用范围 

    jdk:适用于实现接口的类。主要面向接口。

    cglib:通过继承类的方式来实现,该类应该为非final类型。

2、技术实现

    jdk:实现InvocationHandler横切+反射

    cglib:实现MethodInterceptor

接口。通过修改class文件字节码来对方法进行增强。

3、各jdk版本性能

 1.6,1.7: cglib 优于 jdk

 1.8:  jdk 优于 cglib

 为什么?

cglib通过fastclass来创建类,避免使用反射。

4、技术实现

  这里需要提到字节码和class类的相互生成。

  a. 字节码->class类:classloader

  b. class类->字节码增强:字节码框架asm,Javassist。对应类分别是:classwriterhe 和 classpool。

5、ASM介绍

   watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDogIHnjovpmo_ogYo,size_20,color_FFFFFF,t_70,g_se,x_16

   ASM 是一个 Java 字节码操控框架。它能够以二

关注
打赏
1657318586
查看更多评论
立即登录/注册

微信扫码登录

0.0438s