• 三口先生
    2018-06-30
    将资源消耗的这个实例,用动态代理的方式创建这个实例动态代理对象,在动态代理的invoke中添加新的需求。开始使用代理对象,不开启则使用原来的方法,因为动态代理是在运行时创建。所以是零消耗。

    作者回复: 不错

    
     33
  • tyson
    2018-07-03
    可以考虑用javaagent+字节码处理拦截方法进行统计:对httpclient中的方法进行拦截,增加header或者转发等进行统计。开启和关闭只要增加一个javaagent启动参数就行

    作者回复: 是的,我自己也是用Javaagent方案

     1
     26
  • 四阿哥
    2018-06-30
    老师,您这个专栏完结了还会不会出其他专栏,你的每一篇我起码要听三四遍,我都是咬文嚼字的听,非常有用,非常好的内功心法

    作者回复: 非常感谢,老学究感到很欣慰,希望能对未来实践有帮助,专栏形式更多的是解决知识点的问题,后续专栏还没开始思考

    
     4
  • antipas
    2018-06-30
    无痕埋点原理就是这样。像注解类框架也用到了比如retrofit

    作者回复: 是的

    
     4
  • 冯宇
    2018-09-30
    还可以基于JVM实现各种动态语言。比如groovy就是使用java开发的动态脚本语言

    作者回复: 不错,各种jvm语言也是一大亮点

    
     2
  • 西兹兹
    2019-11-11
    老师好, 请问"newProxyInstance 生成代理类实例的时候", 这里是用 hard-code生成字节码,
    为何您这里选用的是ASM的例子呢? 上文提到了JDK里ASM是用在LamdaFrom, 不是newProxyInstance里哦
    
    
  • 小美
    2019-04-30
    老师在讲一些知识的时候,会提及到前面相关的章节,觉得特别赞,可以提醒我们去复习前面的章节,不至于学了后面忘了前面~~老师时不时可以来一些这样的提醒😁
    
    
  • 多格
    2019-04-10
    1. Proxy.newProxyInstance
    2. Class<?> cl = getProxyClass0(loader, interfaces);
    3. private static final WeakCache<ClassLoader, Class<?>[], Class<?>>
            proxyClassCache = new WeakCache<>(new KeyFactory(), new ProxyClassFactory());
    4.value = Objects.requireNonNull(valueFactory.apply(key, parameter));
    5.interfaceClass = Class.forName(intf.getName(), false, loader);
    6.Verify that the Class object actually represents an interface [限制只能是接口]
    7. byte[] proxyClassFile = ProxyGenerator.generateProxyClass(
                    proxyName, interfaces, accessFlags);
    8.return defineClass0(loader, proxyName,
                                        proxyClassFile, 0, proxyClassFile.length);
    展开
    
    
  • 黄明恩
    2018-07-28
    所谓零开销是指哪部分开销,做个统计的开关逻辑不就好了,硬套动态代理来实现感觉有点
    
    
  • omegamiao
    2018-07-17
    请问老师,使用classloader动态加载的外部jar包,应该如何正确的卸载?已经加载到systemclassloader……通过反射urlclassloader的addurl方法加进去的

    作者回复: 加载到system classloader...我理解卸载不了

    
    
  • 胡馥春
    2018-07-05
    所有用到java反射的地方,底层都是采用了字节码操纵技术,老师,这么理解对吗?

    作者回复: 不是,Proxy这里是个特例,因为需要生成新的class

    
    
  • rivers
    2018-07-02
    希望作者能详细的讲下,javaassist等其他代理模式的使用,砍掉了很多内容,尽量考虑下水平有限的读者
    
    
我们在线,来聊聊吧