摘要: 背景&问题 在早期的JVM中,synchronized存在巨大的性能开销。因此,有人想出了一个“聪明”的技巧:双重检查锁定(Double Checked Locking)。人们想通过双重检查锁定来降低同步的开销。下面是使用双重检查锁定来实现延迟初始化的示例代码。 上述的Instance类变量是没有用 阅读全文
posted @ 2019-07-29 16:06 whalefalles 阅读(1370) 评论(0) 推荐(0) 编辑
摘要: 问题 这两天在公司帮老大写一个程序功能,要求抓取从elasticsearch和kibana服务器上返回的数据,统计所有hits的数据字段ret_code为0的hit,并计算其占有率等一些功能。 功能倒是写完交差和合并主分支了,但是后来试运行却发现统计完所有response的数据并且发送报警邮件的整个 阅读全文
posted @ 2019-07-17 18:48 whalefalles 阅读(931) 评论(0) 推荐(0) 编辑
摘要: 1. 根据目的来分 根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。 2. 根据作用范围来分 根据模式是主要用于类上还是主要用于对象上来分,这种方式可分为类模式和对象模式两种。 表 1 介绍了这 23 种设计模式的分类。 3. GoF的23种设计模式的功能 阅读全文
posted @ 2019-07-15 11:42 whalefalles 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 助你开始使用 git 的简易指南,木有高深内容,;)。 Tweet 作者:罗杰·杜德勒 感谢:@tfnico, @fhd and Namics 其他语言 english, deutsch, español, français, italiano, nederlands, português, рус 阅读全文
posted @ 2019-07-11 17:18 whalefalles 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 软件设计模式的产生背景 “设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造(A Patter 阅读全文
posted @ 2019-07-09 17:57 whalefalles 阅读(189) 评论(0) 推荐(0) 编辑