- 博客(5)
- 收藏
- 关注
原创 重学设计模式(十)—— 策略模式
前言在日常开发中,我们经常需要在相同的上下文环境中针对不同的业务主体采用不同的处理逻辑。举个简单的例子,当我们在电商网站上购物结算时,往往会根据自身会员等级的不同而享受不同的优惠政策,而从系统实现的角度来讲,需要其运行时根据不同需求决定使用某一具体算法策略。策略模式便能较好的解决这个问题,本篇博客就来探讨一下策略模式。策略模式 策略模式定义了一系列的算法,并将每一个算法封装起来,而...
2018-06-30 15:13:08 376 2
原创 Spring AOP 对象内部方法间的嵌套调用
前两天面试的时候,面试官问了一个问题,大概意思就是一个类有两个成员方法 A 和 B,两者都加了事务处理注解,定义了事务传播级别为 REQUIRE_NEW,问 A 方法内部直接调用 B 方法时能否触发事务处理机制。答案有点复杂,Spring 的事务处理其实是通过AOP实现的,而实现AOP的方法有好几种,对于通过 Jdk 和 cglib 实现的 aop 处理,上述问题的答案为否,对于通过Aspec...
2018-06-17 00:04:56 7805 2
原创 Java 内存可见性
前两天面试的时候被问到 Java 内存可见性相关问题,个人感觉回答的不是很好,因此需要强化学习一下。首先什么是内存可见性呢?可见性 一个线程对共享变量值的修改,能够及时地被其他线程看到谈到内存可见性,必须得先从 Java 的内存模型(JMM)说起,下图表示了 Java 的内存模型, 整体来说,在 JMM 中,所有的变量都存储在主内存中,而每个线程都有自己独立的工作内...
2018-06-13 15:44:28 445
原创 Spring 声明式事务源码分析
Spring 的声明式事务实现方式主要有2种,一种为通过使用Spring的< tx:advice >定义事务通知与AOP相关配置实现,另为一种通过@Transactional实现事务管理实现,个人认为本质上其实都一样,就是用定义的注解或者配置信息将目标对象包装起来,拦截对访问目标对象的请求,实现对目标对象访问的增强处理。Spring 使用 TransactionInterceptor ...
2018-06-06 17:27:45 460
原创 重学多线程(十)—— synchronized 原理与锁升级
前言前几天去面试的时候,面试官问了一些关于 synchronized 关键字原理性的问题,回答得不甚理想。看来,平时对synchronized关键只能做到知其然,却不知其所以然,所以利用业余时间补习一下。synchronized 原理synchronized 关键字编译后会在同步块的前后添加上 montorenter 和 monitorexit 两个字节码指令,这两个字节码指令都需...
2018-06-02 15:48:38 4733
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人