贫瘠之地

华北无浪漫,死海扬起帆
多少个夜晚,独自望着天

0%

参数

Builder

ConcurrentLinkedHashMap 构造方法私有,只能通过其静态内部类 Builder 来进行实例化

一个完全支持并发检索的哈希表,可调节更新预期并发度,以及限制其最大容量

该实现与 ConcurrentHashMap 的不同之处在于维护了一个页面替换算法(page replacement algorithm),用于在 map 超出容量时删除元素

这个 map 实现没有共有的构造器,它的实例是通过 Builder 创建的

Builder 支持链式赋值,使用如下

阅读全文 »

背景

空对象模式(Null Object Pattern),使用空对象的行为(空实现、校验等)来代替对 Null 值的判断;空对象并不是在检查空值,而是通过对象的行为实现不进行任何动作或者校验的效果,以此对调用方隐藏更多的实现细节

目的 向上层隐藏更多的实现细节,加强系统的稳定性,减少判空判断

现实世界类比 在现实世界中也很难表达 ”空“ 这个概念,往往会使用 ”空盒子“、”空间“ 来进行表达,类比在代码中就是使用表现空概念的对象,而不是判空 obj == null 来实现对空的判断

实践

阅读全文 »

密码学是一门深奥难懂的学科,它充满了数学证明;但除非是正在开发密码系统,否则不必了解太多深层次的知识

如果你打开这篇文章是希望创造下一代 HTTPS 协议,那么很抱歉,只有“鸽子”是远远不够的;如果你的目的不在于此,那么请欣赏这篇文章

爱丽丝、鲍勃和 ...... 鸽子?

在互联网上的任何活动(阅读这篇文章、在 Amazon 平台购买商品、上传猫咪图片)归根结底是同服务器发送或者接收消息

可能听起来有点抽象,所以让我们想象一下这些信息是由信鸽(carrier pigeons)传递的,我知道这个比喻看起来很随意,但相信我,HTTPS 的工作方式是一样的,尽管要快得多

阅读全文 »

背景

装饰模式(Decorator Pattern)也叫装饰器模式,可以实现在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能;它是通过创建一个包装对象(装饰器),也就是装饰来包裹真实的对象(委托对象)

目的 更灵活地对对象方法进行扩展,也可以使多个装饰器共同作用,装饰器之间也可以任意组合

现实世界类比 嵌入式设备,摄像头通过接口连接计算机,安装合适的驱动和软件,整个硬件环境就可以具备摄影机的功能;而在具备摄影功能的基础上再连接新的设备遥控底盘,就变成了可以移动的摄像车

实践

阅读全文 »

记录显示第一个喝到啤酒的人距今有 9000 年之久,但奇怪的是,人们使用啤酒花为了防腐,或者为了添加风味和香气的历史并不久远

如今,啤酒中不添加啤酒花是不可思议的行为;它不仅可以保护啤酒的新鲜,也可以丰富啤酒的味道

本文将介绍你可能不知道的啤酒花知识,现在是时候了解关于家庭酿造的基本原料之一的新东西了

认识啤酒花

阅读全文 »