编程进阶网 编程进阶网
首页
  • 在线工具
  • JSON工具
  • 文本工具
  • 图片处理
  • 文档转化
  • 代码压缩
  • 加解密
  • 时间日期
  • 网络工具
  • 颜色设计
  • 二维码
  • 开发实用
  • 计算机组成原理
  • 操作系统原理
  • 网络协议原理
  • 数据库系统原理
  • 序卷导读
  • 数据本质
  • 运行模型
  • 并发设计
  • 内存真相
  • 交互系统
  • 面向对象
  • 设计原则
  • 设计模式
  • 系统架构
  • 体系建设
  • 代码品质
  • 方案设计
  • 稳定可靠
  • 工程运维
  • 性能优化
  • 数据结构导论
  • 线性结构详解
  • 树哈希结构论
  • 容器设计实战
  • 经典算法思想
  • 工程案例剖析
  • 算法题库精练
  • C语言入门
  • C综合案例
  • C专栏博客
  • C标准集库
  • C++入门教程
  • C++综合案例
  • C++专栏博客
  • C++编程技巧
  • Java入门教程
  • Java综合案例
  • Java专栏博客
  • Go入门教程
  • Go综合案例
  • Go专栏博客
  • Go开发技巧
  • JavaScript入门
  • JavaScript案例
  • JavaScript高级
  • Android库解读
  • Android专栏
  • iOS ObjC入门
  • iOS Swift入门
  • iOS入门精通
  • Web之Html手册
  • Web之TypeScript
  • Web之Vue高级进阶
  • Linux之QML入门
  • Linux之QT核心库
  • Python教程
  • Shell&Bash教程
  • 工具脚本
  • 自动化脚本
  • 质量保障
  • 产品思考
  • 软实力
  • 开发流程
  • Git应用
  • 技术模版
  • 技术规范
  • Markdown
  • Mermaid
  • 开源协议
  • 毛选解读
  • 自我精进
  • 关于我
  • 自我精进
  • 职场管理
  • 职场面试
  • 心情杂货
  • 友情链接

杨充

专注编程 · 终身学习者
首页
  • 在线工具
  • JSON工具
  • 文本工具
  • 图片处理
  • 文档转化
  • 代码压缩
  • 加解密
  • 时间日期
  • 网络工具
  • 颜色设计
  • 二维码
  • 开发实用
  • 计算机组成原理
  • 操作系统原理
  • 网络协议原理
  • 数据库系统原理
  • 序卷导读
  • 数据本质
  • 运行模型
  • 并发设计
  • 内存真相
  • 交互系统
  • 面向对象
  • 设计原则
  • 设计模式
  • 系统架构
  • 体系建设
  • 代码品质
  • 方案设计
  • 稳定可靠
  • 工程运维
  • 性能优化
  • 数据结构导论
  • 线性结构详解
  • 树哈希结构论
  • 容器设计实战
  • 经典算法思想
  • 工程案例剖析
  • 算法题库精练
  • C语言入门
  • C综合案例
  • C专栏博客
  • C标准集库
  • C++入门教程
  • C++综合案例
  • C++专栏博客
  • C++编程技巧
  • Java入门教程
  • Java综合案例
  • Java专栏博客
  • Go入门教程
  • Go综合案例
  • Go专栏博客
  • Go开发技巧
  • JavaScript入门
  • JavaScript案例
  • JavaScript高级
  • Android库解读
  • Android专栏
  • iOS ObjC入门
  • iOS Swift入门
  • iOS入门精通
  • Web之Html手册
  • Web之TypeScript
  • Web之Vue高级进阶
  • Linux之QML入门
  • Linux之QT核心库
  • Python教程
  • Shell&Bash教程
  • 工具脚本
  • 自动化脚本
  • 质量保障
  • 产品思考
  • 软实力
  • 开发流程
  • Git应用
  • 技术模版
  • 技术规范
  • Markdown
  • Mermaid
  • 开源协议
  • 毛选解读
  • 自我精进
  • 关于我
  • 自我精进
  • 职场管理
  • 职场面试
  • 心情杂货
  • 友情链接
  • README
  • 序卷方法论

  • 数据的本质

    • README
      • 🎯 这一卷要回答什么
      • 📖 篇章总览(9 篇)
      • 🔗 知识脉络
      • 🌉 与其他卷的承接
      • 💡 学完你能回答
    • 1.数据编码设计原理
    • 2.整型与位运算原理
    • 3.浮点数据设计灵魂
    • 4.字符串设计的灵魂
    • 5.值类型与引用设计
    • 6.泛型设计灵魂思想
    • 7.集合容器设计原理
    • 8.序列化数据的思想
    • 9.数据解析设计思想
  • 运行时模型

  • 并发的设计

  • 内存的真相

  • 交互和系统

  • 内功
  • 数据的本质
杨充
2026-05-14
目录

README

# 第 1 卷|数据的本质

万物起源——计算机如何用有限的位表示无限的信息?这是所有上层设计的源头。


# 🎯 这一卷要回答什么

业务里你天天用 int、String、List、JSON、泛型——但能回答下面这些"小问题"吗?

  • 为什么 (start + end) / 2 这种"看起来人畜无害"的写法会引发线上事故?补码到底解决了什么?
  • 为什么 "abc" == "abc" 在 Java 里是 true,在 JS 里也是 true,但机制完全不同?
  • 为什么 0.1 + 0.2 ≠ 0.3 是全世界 CPU 共同的"病",而不是某门语言的 bug?
  • 为什么 ArrayList 用 contains 在百万级数据下会把服务打挂?容器选择背后是哪一组权衡?
  • 为什么 Java 的泛型是"假泛型",C++ 是"真泛型",Go 又是另一种实现?
  • 同样的对象,序列化成 JSON 是 200 字节,序列化成 Protobuf 是 30 字节——差的 170 字节去哪了?
  • 同一个 JSON 解析器,为什么 simdjson 比 Jackson 快 100 倍?

这一卷不是讲 API,是讲这些数据结构当年是为了什么矛盾被发明的。


# 📖 篇章总览(9 篇)

序号 文档 核心矛盾
1.1 数据编码设计原理 (opens new window) 全人类文字如何在 0/1 上达成共识?ASCII → Unicode → UTF-8
1.2 整型与位运算原理 (opens new window) 为什么是补码?整数溢出与位运算背后的硬件约束
1.3 浮点型数据设计灵魂 (opens new window) IEEE 754 是工程妥协而非数学真理
1.4 字符串设计的灵魂 (opens new window) 为何字符串要不可变?常量池、StringBuilder 的真正动机
1.5 值类型与引用设计 (opens new window) 值传递、引用传递、共享可变状态的本源
1.6 泛型设计灵魂思想 (opens new window) 类型擦除 vs 单态化——同一个目标的两条工程路线
1.7 集合容器设计原理 (opens new window) 数组 / 链表 / 哈希 / 树——一组关于时间空间的根本权衡
1.8 序列化数据的思想 (opens new window) JSON / XML / Protobuf / Thrift 的体积与可读性 trade-off
1.9 数据解析设计思想 (opens new window) 词法 / 语法 / SIMD —— 解析器为何能差出 100 倍

# 🔗 知识脉络

数据从最底层的 0/1 编码出发,一路抽象到泛型与容器,再以序列化"压扁"回字节流,最后由解析器"还原"——这是一条完整的数据生命周期回路。


# 🌉 与其他卷的承接

  • 承接序卷:序卷讲"为什么学",本卷给出第一个具体的"什么"——数据。
  • 通往第 2 卷:第 2 卷讲"对象怎么活在内存里",必须先理解本卷的"数据怎么被表示"。
  • 回响第 4 卷:序列化 / 拷贝 / 容器内存布局在第 4 卷会被再次提及,但视角从"数据格式"转到"内存与缓存"。

# 💡 学完你能回答

  • 一个 emoji 占几个字节?为什么 MySQL utf8 不能存 emoji?
  • 为什么 int 加法会"绕回",编译器为何敢于据此做激进优化?
  • String s = "a" + "b" 在编译期会发生什么?
  • HashMap 的负载因子为何是 0.75?rehash 的代价从何而来?
  • Java 泛型的擦除带来了哪些"看似不合理"的限制?
  • 为什么大公司内部 RPC 大多用 Protobuf 而不是 JSON?
  • 100MB 的 JSON 在浏览器里为什么会卡住主线程?怎么破?
上次更新: 2026/06/28, 17:55:19
全专栏地图与索引
1.数据编码设计原理

← 全专栏地图与索引 1.数据编码设计原理→

最近更新
01
科学方法实践论法
06-28
02
辩证思维矛盾论法
06-28
03
毛选中的调查观念
06-28
更多文章>
Theme by Vdoing | Copyright © 2019-2026 杨充 | MIT License | 鄂ICP备2024073355号-1 | 鄂ICP备2024073355号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式