Java基础
文章平均质量分 80
浮生_半日闲
菜鸟也是鸟呀...
展开
-
ThreadPool线程池源码解析
如何实现线程复用的?先提交的任务一定会先执行吗?线程池中的线程如何做到空闲一定时间退出的?没有任务时候超过最大存活时间被销毁的是非核心线程?在调用shutdown方法关闭线程池的时候,如何判断线程有没有在执行任务?shutdown和shutdownNow两个方法区别?如何处理执行失败的任务?本觉得自己已经懂线程池了,看到以上几个问题能否都能答上来,还是又觉得自己不懂了,一脸懵逼?如果你能回答上来那么你可以绕过了。原创 2023-03-19 22:23:14 · 2305 阅读 · 3 评论 -
JAVA基础:动态代理cglib原理(二)Fastclass 机制分析
JDK动态代理的拦截对象是通过反射的机制来调用被拦截方法的,反射的效率比较低,所以CGLIB采用了FastClass的机制来实现对被拦截方法的调用。原创 2023-02-25 00:18:42 · 1560 阅读 · 1 评论 -
JAVA基础:动态代理cglib原理(一)源码准备
CGLIB是一个强大、高性能的字节码生成库。使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生成框架,使用字节码技术生成代理类,比使用Java反射效率要高。需要注意的是,CGLib不能对声明为final的方法进行代理,因为CGLib原理是动态生成被代理类的子类。概念性的东西就不多贴了,总之作为SpringBoot AOP实现底层原理其重要性不言而喻了。然鹅,在工作中发现,工作好多年的都不知道怎么阅读源码,让人着实很惊讶,大佬可以移步了。原创 2023-02-21 00:27:45 · 398 阅读 · 0 评论