- 博客(4)
- 问答 (2)
- 收藏
- 关注
原创 《Java高并发编程详解》第1集:线程的6个状态和资源释放情况
非常的抱歉,犹豫自己学艺不精,妄下结论,贻笑大方。在我更新完测试用例之后发现,在x.wait()方法之后,当前线程进入的是timed_waiting或者waiting状态时,释放的是当前x的锁资源,并不会释放其余的锁资源,所以还是会造成死锁。给大家带来的疑惑,深感歉意。讲高并发必须讲线程,线程到底是什么东西呢,我们查看Thread代码的时候发现一段很神奇的代码调用了native的方法,在j...
2019-11-10 23:03:15 378
原创 【深入理解java虚拟机】第3集-动态代理的原理之CGLIB
上面一篇文章JDK动态代理的原理讲到Java内部的JDK动态代理的原理,这一集讲一下CGLIB的原理CGLIB生成代理类的工厂:Enhancer看demopublic class EnhancerFactoryTest { /** * 生成新的代理 * @param obj * @return */ public static ...
2019-11-05 15:36:41 199
原创 【深入理解java虚拟机】第2集-JDK动态代理的原理
java有两种动态代理一:JDK动态代理:Proxy二:CGLIB动态代理:Enhancer动态代理的实质是利用字节码工具,生成新的代理类,替换原始的类。我们首先看JDK代理模式创建代理对象需要入参 ClassLoader,被代理的对象的接口数组,一个新的InvocationHandler。看demopublic class ProxyFactoryTest {...
2019-11-05 14:41:44 277
原创 【spring 设计思想】第3集-自动生成bean的代理
spring中的bean如果有需要的话,在ApplicationContext refresh()方法执行的时候,被替换成了代理类。具体的调用堆栈:我们看到默认使用的是CGLIB代理模式,这种模式的好处就是可以直接对实体类生成代理,而不必像JDK的代理,必须要被代理的类实现接口。...
2019-11-05 14:22:19 226 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人