摘要: Intent 使用原型实例指定要创建对象的类型,通过复制这个原型来创建新对象。 Class Diagram Implementation public abstract class Prototype { abstract Prototype myClone(); } public class Co 阅读全文
posted @ 2018-11-13 23:06 青春暮年 阅读(104) 评论(0) 推荐(0) 编辑
摘要: Intent 封装一个对象的构造过程,并允许按步骤构造。 Class Diagram Implementation 以下是一个简易的 StringBuilder 实现,参考了 JDK 1.8 源码。 public class AbstractStringBuilder { protected cha 阅读全文
posted @ 2018-11-13 23:04 青春暮年 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1. 简单工厂(Simple Factory) Intent 在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 Class Diagram 简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。 这样做能把客户类和具体子类的 阅读全文
posted @ 2018-11-13 23:03 青春暮年 阅读(197) 评论(0) 推荐(0) 编辑
摘要: Intent 确保一个类只有一个实例,并提供该实例的全局访问点。 Class Diagram 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 Implementation Ⅰ 懒汉式- 阅读全文
posted @ 2018-11-13 22:59 青春暮年 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 使用 Explain 进行分析 Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句。 比较重要的字段有: select_type : 查询类型,有简单查询、联合查询、子查询等 key : 使用的索引 rows : 扫描的行数 优化数据访问 1. 阅读全文
posted @ 2018-11-13 22:49 青春暮年 阅读(237) 评论(0) 推荐(0) 编辑
摘要: B+ Tree 原理 1. 数据结构 B Tree 指的是 Balance Tree,也就是平衡树。平衡树是一颗查找树,并且所有叶子节点位于同一层。 B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具有 B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。 在 阅读全文
posted @ 2018-11-13 22:48 青春暮年 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 多版本并发控制(Multi-Version Concurrency Control, MVCC)是 MySQL 的 InnoDB 存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。而未提交读隔离级别总是读取最新的数据行,无需使用 MVCC。可串行化隔离级别需要对所有读取的行 阅读全文
posted @ 2018-11-13 22:43 青春暮年 阅读(2584) 评论(0) 推荐(0) 编辑
摘要: 封锁粒度 MySQL 中提供了两种封锁粒度:行级锁以及表级锁。 应该尽量只锁定需要修改的那部分数据,而不是所有的资源。锁定的数据量越少,发生锁争用的可能就越小,系统的并发程度就越高。 但是加锁需要消耗资源,锁的各种操作(包括获取锁、释放锁、以及检查锁状态)都会增加系统开销。因此封锁粒度越小,系统开销 阅读全文
posted @ 2018-11-13 22:39 青春暮年 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。 流与块 I/O 与 NIO 最重要的区别是数据打包和传输的方式,I/O 以流的方式处理数据,而 NIO 以块的方式处理数据。 面向流的 I/O 一次处理一个字节数据:一个输入 阅读全文
posted @ 2018-11-13 22:34 青春暮年 阅读(171) 评论(0) 推荐(0) 编辑