摘要: 我们先聊聊一个经典面试题:i=i++; 我们知道在虚拟机底层它实际上做了三步: int temp =i; i = i + 1; i = temp; i++实际上的操作分为三个部分:读、改、写 我们看看下面的例子: public class TestAtomicDemo { public static 阅读全文
posted @ 2019-04-27 20:41 FigSprite 阅读(184) 评论(0) 推荐(0)
摘要: 先来看一个例子: public class VolatileTest { public static void main(String[] args) { ThreadDemo td = new ThreadDemo(); new Thread(td).start(); while (true) { 阅读全文
posted @ 2019-04-27 19:40 FigSprite 阅读(2222) 评论(2) 推荐(0)
摘要: CPU多级缓存 缓存一致性(MESI) Cache的四种数据状态M(被修改)E(独享)S(共享)I(无效) M:与主存的数据不一致,在将来的某一个时间内需要写进主存,这个动作要在CPU读取内存之前完成,当这个数据放回主存后,就会进入E状态 E:只被自己的CPU访问,当其他CPU访问时,变成S状态,当 阅读全文
posted @ 2019-04-27 16:27 FigSprite 阅读(190) 评论(0) 推荐(0)
摘要: 接着我们讲讲关联关系的配置,我们耳熟能详的MVC结构,Controller关联着Service,Service关联着UserRepository,接着上一节的代码,完成上诉功能 在Main方法里,我们希望调用Controller的execute()方法能打印出三条信息,接下来我们直接运行一下 不出所 阅读全文
posted @ 2019-04-27 11:16 FigSprite 阅读(244) 评论(0) 推荐(0)
摘要: 之前说的三种配置方式,都是使用XML配置,现在我们说说使用注解配置Bean。 这部分内容主要分为两个部分:使用注解配置Bean,使用注解配置Bean属性。 在classpath中扫描组件 组件扫描:Spring能够从ClassPath下自动扫描,侦测和实例化具有特定注释的组件 特定组件包括: @Co 阅读全文
posted @ 2019-04-27 09:56 FigSprite 阅读(539) 评论(0) 推荐(0)