随笔分类 - 计算机通识
摘要:本文继续从二分搜索出发,推导出另一种平衡树结构:跳表。跳表是一种简单而精巧的数据结构,和红黑树具备同等时间复杂度的同时,保持了足够的简单性——这种简单性的关键是通过概率决定索引层数。
阅读全文
摘要:我们小学就学过矩形的面积等于长乘以宽。但活了几十年,你有没有想过:矩形面积为啥等于长乘以宽?它跟程序员有什么关系?
阅读全文
摘要:
本文从众所周知的 setnx 命令开始实现一个简单的 Redis 锁,在实际应用中逐步揭示其面临的问题并给出解决方案,循序渐进地讲解分布式锁需要解决的诸多问题(被动释放、属主、锁等待、保活等),让人知其然且知其所以然。另外本文指出分布式锁并不是银弹,有些问题虽然能用分布式锁解决,但其实有其他更好的方案。
阅读全文

摘要:
在前面文章《字符集编码(中):Unicode》中我们聊了 Unicode 标准并提到其有三种实现形式:UTF-16、UTF-8 和 UTF-32,本篇我们就具体聊聊这三种 UTF 是怎么实现的。
阅读全文

摘要:
上世纪九十年代前各厂商为了应对多语言文字的编码需求而设计了各种互不兼容的编码标准,这使得开发商在处理多语言环境时相当棘手。为了解决各自为政的乱象,利益相关公司走到一起试图设计一种新型的、可囊括全世界所有字符的统一编码标准。
阅读全文

摘要:
在聊 Unicode 之前先讲讲设计层面的东西。编码模型是字符集编码的设计指导框架,有助于我们更好更透彻地理解各具体的编码标准。
阅读全文

摘要:
字符集编码的历史出乎意料地复杂而有趣,打算花三个章节讲讲字符集编码的来龙去脉。本篇讲讲 Unicode 出现之前字符集编码领域的混沌与秩序
阅读全文

摘要:
网络层是整个网络分层体系里面最复杂的部分,不仅涉及到技术,还涉及到运营商之间的博弈。
阅读全文

摘要:
DNS 对于大部分技术人员来说即熟悉又陌生,说熟悉是因为它就是一个简单的目录服务,将域名映射为 IP;说陌生是因为这个全世界互联网的底层设施不但实现起来及其复杂,甚至还涉及到政治因素,大部分人对这些并不了解。
阅读全文
