阅读约 25 分钟 · 另留动手时间
列名后面写着 INTEGER,为什么还能存进一段文字?
对照普通表、STRICT 表和业务约束表,观察同一输入如何被转换、保留或拒绝,再判断前导零是否应该保留下来。
- SQLite
- 类型亲和
- STRICT
- 数据校验
往期新增 / 2026.10.17 / 33 篇
沿后端、AI、计算机基础三条线,把容易忽略的条件变成可以运行的小实验。每篇给出原始资料、验证范围与独立练习。
先看本文的问题是否与你有关,再读正文、运行示例、记录自己的结果。阅读分钟数不包含环境准备和实验时间;示例验证范围在运行说明及下载包内标明。
能阅读简单 Python 和 SQL。Java 三篇需完整 JDK 17 或更新版本;按每张卡片提示选择前置知识。
这一组留下什么:完成数据约束与恢复检查表;再按当前问题检查进程、线程、网络或 Java 对象生命周期。
先区分存储类型、自动转换与业务允许值,写一张输入是否接受的对照表。
再把约束放进生命周期:记录停用、重新注册与恢复账号分别检查哪些行。
数据能正确写入后,制作并恢复副本,检查文件完整与业务记录齐全是否同时成立。
最后沿数据关系向外查,分别定义节点、整行与路径的身份,并标明截断条件。
这是一条建议顺序;遇到当前项目的问题,也可以直接选择下面对应的文章。每篇的前置阅读另有说明。
阅读约 25 分钟 · 另留动手时间
对照普通表、STRICT 表和业务约束表,观察同一输入如何被转换、保留或拒绝,再判断前导零是否应该保留下来。
阅读约 26 分钟 · 另留动手时间
保留历史记录时,整表唯一与仅活跃记录唯一是两条不同规则;用部分唯一索引观察新建、恢复和显式交接各会发生什么。
阅读约 25 分钟 · 另留动手时间
亲手造出一份能正常打开、完整性检查也通过,却缺少一条订单的副本;再用 SQLite 备份 API 恢复同一时刻的已提交记录。
阅读约 28 分钟 · 另留动手时间
可以先在页面里动手
在三节点环上只添加一列深度,就会改变去重对象;用有限的真实 SQLite 查询区分节点身份、整行身份与当前路径。
阅读约 27 分钟 · 另留动手时间
用一个只输出有限字节的子进程,复现父进程等退出、子进程等管道空位;再同时读取两条输出管道,让同一程序正常结束。
适合排查:工具启动后日志变多就卡住,主程序一直等它退出。
开始前:知道进程的输入、输出与退出码;不需要外部命令行工具。
阅读约 26 分钟 · 另留动手时间
用真实本机 TCP 连接观察:sendall 返回、读取超时、收到 EOF 是三个事件;关闭发送方向后,仍可以接收对方的回复。
适合排查:请求已经发完,客户端和服务端却都在等待下一步。
开始前:先区分字节流与消息边界,再运行本机 TCP 实验。
阅读约 28 分钟 · 另留动手时间
把入队任务的结账、业务成功和线程退出分别观察:一个停止标记只会被一个消费者取走,queue.join 返回后仍可能有线程在等。
适合排查:单消费者能正常结束,增加工作线程后却关不干净。
开始前:知道 put/get 与线程;本文会解释两种 join 的区别。
阅读约 27 分钟 · 另留动手时间
在 Windows 本机实际收到 10040 错误后,再发一条带标记的新报文;观察尾部没有续读,并验证空 UDP 报文不等于 TCP 的结束。
适合排查:消息缺一截,下一次读取却拿到另一条消息。
开始前:知道 UDP 一次发送一条数据报;对照平台返回行为。
阅读约 28 分钟 · 另留动手时间
用同一 JVM 的两个文件通道和两个自建 JVM,观察重叠文件锁的异常、null 与成功获取,分清线程互斥和进程间协作。
适合排查:同一程序换了文件通道,拿锁时还是抛出重叠异常。
开始前:会用 Java 文件流和 try-with-resources;需要完整 JDK 17 或更新版本。
阅读约 28 分钟 · 另留动手时间
用构造次数、父类字段、transient 初始化值和自生成字节,观察普通 Serializable、readObject 校验与 record 的三条恢复路径。
适合排查:构造器检查过的值,从对象流恢复后却不满足原来的条件。
开始前:知道 Java 继承、构造器、transient 与对象流;实验只读自己生成的字节。
阅读约 30 分钟 · 另留动手时间
用单文件生成服务描述元数据,观察首次实例化、重复迭代缓存、reload 后的新对象,以及延迟出现的 provider 构造异常。
适合排查:插件发现时没报错,第一次使用却失败,reload 后旧实例还在。
开始前:知道 Java 接口、实现类与类加载器;单文件会自行创建服务描述文件。
先准备概率、加权平均与 Python 列表。蒸馏另需简单导数,可先补读正文的前置链接。
这一组留下什么:给每个概率、损失与向量输出写明输入、单位、成立条件和独立对照。
从只有两种颜色、两种类别的分布开始,亲自计算先验、后验和归一化。
把离散类别换成连续数值,核对密度、方差与物理单位,避免直接比较裸损失。
再把误差排成名次,分清总体覆盖、分组表现与小样本的有限取整。
有概率与导数基础后,逐项算软目标、损失和梯度,检查温度究竟改变了什么。
这是一条建议顺序;遇到当前项目的问题,也可以直接选择下面对应的文章。每篇的前置阅读另有说明。
阅读约 25 分钟 · 另留动手时间
把类别比例从一半改成一成,用完整枚举核对先验校正,并亲手破坏它依赖的条件。
阅读约 23 分钟 · 另留动手时间
用高斯密度、区间概率与完整负对数似然,拆开计量单位、方差输入和常数项三个容易混淆的尺度。
阅读约 21 分钟 · 另留动手时间
可以先在页面里动手
从八条校准误差和九个可能名次出发,理解共形预测的取整、无穷阈值与覆盖边界。
阅读约 20 分钟 · 另留动手时间
直接计算老师与学生的三个类别分数,观察软标签、KL 方向和梯度尺度怎样一起变化。
阅读约 21 分钟 · 另留动手时间
逐步撤销截图缩放与裁剪,分清图片像素、视口 CSS 坐标和文档坐标,再拒绝过期观察。
适合排查:视觉模型圈出了按钮,交给点击接口的坐标却偏了。
开始前:会按比例换算和加减坐标;只运行计算,不接真实界面。
阅读约 19 分钟 · 另留动手时间
可以先在页面里动手
用八个输入、两个专家和固定名额,分清路由偏好、实际负载、溢出旁路与闲置容量。
适合排查:一部分专家还有空位,另一部分却已经溢出。
开始前:会看概率列表与容量限制;页面可以先改参数观察。
阅读约 22 分钟 · 另留动手时间
手算四个查询头与两组 K/V,识别形状完全正确却分组错位的实现,再单独计算缓存数据量。
适合排查:注意力张量形状都对,分组后数值却变了。
开始前:先理解 Q、K、V 与 Softmax;正文提供回读链接。
阅读约 26 分钟 · 另留动手时间
可以先在页面里动手
穷举九条 CTC 路径,分清逐帧贪心、重复合并与标签概率求和,并检查重复字符需要的额外帧。
适合排查:逐帧贪心结果与整段标签概率不一致,重复字符还丢了。
开始前:会做概率乘法、加法和短列表枚举。
阅读约 24 分钟 · 另留动手时间
用三个选项手算直通估计,比较硬选择的有限差分与人为规定的替代梯度,并检查非线性损失的区别。
适合排查:硬选择的小扰动结果不变,训练程序却还给出了梯度。
开始前:先理解 Softmax、链式求导与数值差分;正文提供导数基础链接。
阅读约 27 分钟 · 另留动手时间
从两步加噪的方差账目出发,区分单步与累计噪声,再核对噪声、原信号和 v 三种目标的误差换算。
适合排查:每一步加噪声都看得懂,累计噪声和训练目标却对不上。
开始前:会计算平方、平方根、方差与均方误差;先对照标量例子。
阅读约 23 分钟 · 另留动手时间
用二维向量算出 ColBERT 的 MaxSim,检查方向、重复项与补齐掩码,理解多向量检索到底保留了什么。
适合排查:文档平均向量一样,逐词匹配分数却不同,补齐位置还抬高分数。
开始前:知道向量点积和归一化;输入是固定小向量,无需下载模型。
能阅读 Python 条件、循环和列表。网络篇从 IPv4 地址开始,算法篇会说明各自前提。
这一组留下什么:留下共享位置、路由选择、序号比较和任务时间表;算法专题可按问题单独练。
先用六个字节追踪共享状态:不同入口读到哪里,哪个动作会影响另一端。
再用五层网段做一次选择,把“匹配到”与“最终选中”分别记录。
为连续消息加上有限序号,观察越过最大值后为什么还要限制比较范围。
最后画出三个任务的运行顺序,把准备运行、等待锁与持锁者的执行机会分开。
这是一条建议顺序;遇到当前项目的问题,也可以直接选择下面对应的文章。每篇的前置阅读另有说明。
阅读约 16 分钟 · 另留动手时间
可以先在页面里动手
让 A 读出 AB、复制得到的 B 接着读出 CD,再与重新打开的 C 对照:分清编号、打开状态和文件内容。
阅读约 17 分钟 · 另留动手时间
可以先在页面里动手
同一个 IPv4 地址可以同时属于 /0、/8、/16、/24 和 /32。写一个不会改动真实网络的查询器,看最长前缀怎样选择下一站。
阅读约 18 分钟 · 另留动手时间
可以先在页面里动手
有限位数的序号会绕回开头。用模差判断局部新旧,并明确相差半个空间时为什么不能随便选一边。
阅读约 17 分钟 · 另留动手时间
可以先在页面里动手
低优先级拿着锁,高优先级等锁,中优先级一直占CPU:用单锁时间表看懂优先级反转与临时继承。
阅读约 21 分钟 · 另留动手时间
用蓄水池抽样在未知长度的数据流里保留固定容量;再穷举小例子,检查早来与晚来的记录有没有被偏爱。
适合排查:输入不知道多长,只想留下固定数量的公平样本。
开始前:会写循环、列表,并理解等概率选择。
阅读约 19 分钟 · 另留动手时间
两张不同的图能留下完全相同的分组状态,却在删除同一条边后给出相反结果。用这个反例看清并查集保存了什么。
适合排查:新增关系很快,删除后旧的连通分组却还说连得上。
开始前:先知道图的点、边,以及 BFS 如何查询可达性。
阅读约 19 分钟 · 另留动手时间
一条成本为负的边就能打破 Dijkstra 提前定案的依据。用三点小图对照错误结果、输入拒绝与 Bellman-Ford。
适合排查:最短路线引入抵扣后,提前返回的答案变错了。
开始前:先理解路径总成本和优先队列;不需要导航系统。
阅读约 19 分钟 · 另留动手时间
一个亮起来的格子可能属于多条记录。先观察清零造成的漏报,再看计数器为什么仍需要“确实插入过”的依据。
适合排查:过滤器取消一项后,另一项被错误地判为不存在。
开始前:知道哈希会把不同对象映射到共享位置。
阅读约 20 分钟 · 另留动手时间
可以先在页面里动手
同一串访问、同一种 FIFO 规则,只把容量从 3 改为 4,未命中却从 9 增加到 10。逐步查看被换走的是谁。
适合排查:缓存多了一个位置,重新读取次数反而增加。
开始前:先理解命中与淘汰;可直接在页面逐步比较两个容量。
阅读约 23 分钟 · 另留动手时间
让两个真实进程先检查、再按指定次序创建。比较 w 与 x,把检查结果和真正取得创建资格分开。
适合排查:两个进程都检查文件不存在,创建后却覆盖了对方内容。
开始前:能区分进程和文件路径;代码会建立自己的临时文件与子进程。
阅读约 24 分钟 · 另留动手时间
三条候选连线成本是 2、3、4。最小生成树花 5,起点最短路树花 6;它们优化的是两份不同账本。
适合排查:总连线最省钱的方案,从起点走到各处却不一定最短。
开始前:先知道图的点、边、路径成本;正文提供图与并查集回读链接。