12 2018 档案
摘要:一、 i++ 的原子性问题 1、问题的引入: i++ 的实际操作分为三个步骤:读--改--写 实现线程,代码如下: 测试类,代码如下: 结果如下图所示: 以上的原子性问题可以使用“原子变量”解决; 二、原子变量 在JDK1.5 之后,提供了 java.util.concurrent.atomic 包
阅读全文
摘要:1、问题引入 实现线程: 测试类: 结果:flag=true,并且程序不会停止 结果分析:从结果中看到,线程threadDemo 将 flag 被修改为 ture 了,但是 while 循环中的 if 判断中没有进入(即 flag = false);主线程中的flag和threadDemo 中的fl
阅读全文
摘要:SQL UNION 操作符 1、UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 2、UNION用的比较多union all是直接连
阅读全文
摘要:模板设计模式 1、简介 模板模式定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特征步骤。 2、核心 处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,需要我们采用工厂方法模式,将这个节点的代码实现转移给
阅读全文
摘要:策略模式(strategy) 策略模式对应于解决某一个问题的一个算法族,允许用户从该算法族中任选一种算法解决某一问题;同时,可以方便的更换算法或增加新的算法;并且由客户决定调用哪个算法。 1、提出问题:实现一个根据客户类型获取商品价格的方法,如下: 以上的实现比较基础,能够解决我们的问题,但是存在以
阅读全文
摘要:原型模式 通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。就是 java 中的克隆技术,以某个对象为原型,复制出新的对象。显然,新的对象具备原型对象的特点。 优势:创建对象效率高(直接克隆,避免重新执行构造过程步骤) 克隆类似于 new 但是不同于 new。new 创
阅读全文