摘要:
桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 桥梁模式的用意 桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这 阅读全文
摘要:
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得 阅读全文
摘要:
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构 单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。 饿汉式单例类 上面的例子中,在这个类被加载时,静态变量ins 阅读全文
摘要:
原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。 原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的 阅读全文
摘要:
建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又 阅读全文
摘要:
工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明 阅读全文
摘要:
一、抽象工厂模式 应用:spring必不可少的三个模式:factory模式(包括简单工厂和抽象工厂), strategy模式,template method模式 场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为 阅读全文
摘要:
volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩 阅读全文
摘要:
1. ROUND_DOWN BigDecimal b = new BigDecimal("2.225667").setScale(2, BigDecimal.ROUND_DOWN);System.out.println(b);//2.22 直接去掉多余的位数2. ROUND_UP BigDecima 阅读全文
摘要:
我们通常希望避免在两个并行事务中产生如下情形: Adam的事务读取数据 XBarbara的事务读取数据 XAdam的事务修改数据 X,并将其修改为 XAAdam的事务写入数据 XABarbara的事务修改数据 X,并将其修改为 XBBarbara的事务写入数据 XB结果是,Adam所做的修改完全被B 阅读全文
摘要:
1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一 阅读全文
摘要:
现有如下代码: 反例之一:丢弃异常 代码:15行-18行。 这段代码捕获了异常却不作任何处理,可以算得上Java编程中的杀手。从问题出现的频繁程度和祸害程度来看,它也许可以和C/C++程序的一个恶名远播的问题相提并论??不检查缓冲区是否已满。如果你看到了这种丢弃(而不是抛出)异常的情况,可以百分之九 阅读全文
摘要:
-- 6378.138这个是地球的直径,单位千米.latitude是用户位置的纬度,longitude是用户位置经度.latitude 为商户的纬度字段, -- longitude为商户的经度字段。上面一段sql计算得出根据用户经纬度计算与商户的距离。 -- 30.5821398542, SELEC 阅读全文
摘要:
1、下载jdk:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/ 阅读全文
摘要:
在虚拟机VM里面装了centos系统,网卡选用桥接方式。刚开始的时候还能自动获取到IP地址,突然有一天IP消失了,再怎么重启都无法获取IP地址。因为之前是可以获取IP,而且 VMware NAT Service 和 VMware DHCP Service 两个已启动,没做任何的改动,所以配置肯定是没 阅读全文
摘要:
1、 cd命令 a) cd .. 切换到上一层目录 b) cd ./ 切换到当前目录下某个目录 c) cd – 切换到上一个所在目录 d) cd ../../ 切换到上上级目录 e) cd /usr 切换到指定目录 f) cd 切换到用户主目录 2、 ls ll a) ls –l 等于 ll 命令 阅读全文
摘要:
1.上传包到服务器 mysql80-community-release-el7-1.noarch.rpm 2.rpm -Uvh mysql-xxxxx.rpm 3. yum install -y mysql-community-server 4. service mysqld start(重启是re 阅读全文
摘要:
InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题 1.事务(Transaction)及其ACID属性 事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为 阅读全文
摘要:
在项目中遇到以下错误 Lock wait timeout exceeded; try restarting transaction是锁等待超时。是当前事务在等待其它事务释放锁资源造成的。 解决方法: 在mysql查询中执行以下指令select * from information_schema.in 阅读全文
摘要:
需求:需要在查询出的字段中,判断这个某个字段是否为null,并指定想要的值, 结果: 当你的表示myisam时: SELECT * FROM tbl -- this will do a "table scan". If the table has never had any DELETEs/REPL 阅读全文