
java
Genius_sasuke
这个作者很懒,什么都没留下…
展开
-
笔记--java内存模型
单线程中,如果后面代码依赖于前面的代码,就不会发生指令重排。 锁定规则:如果一个锁处于被锁状态,一定执行unlock后才能lock。 变量规则:volatile,如果一个线程先写了volatile变量,另一个线程再读取的值一定是写之后的值。 线程启动规则:一个线程通过B.start()启动B,A对变量的修改一定对B可见。 线程中断规则:interrupt()方法调用咸鱼被中断线程的代码检测,直到中断。??? 线程终结规则:A调用B.join()等B终止,B终止前对共享变量的修改对A可见。 对象初始化:对象初原创 2020-05-25 15:23:25 · 178 阅读 · 0 评论 -
一文彻底搞懂静态代理和动态代理
先看下机制上的区别: 静态:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了。 动态:在程序运行时运用反射机制动态创建而成。 那么由我来一步步解析为什么产生这样的写法 最基本的,举个例子:使用第三方库加载一个图片 然后发现不够优美,我们是面向对象编程的开发者!于是我们给方法放进了对象 嗯,好像可以了,这下只需要new一个ImageLoaderImpl,然后调用disPlayImage就可以了,美滋滋下班! 等用了一段时间,PM找你谈话了原创 2020-05-15 17:14:53 · 526 阅读 · 0 评论