2026-05-11 学习记录 —— 修 typo、推代码、学内存、被虚函数表绕晕
2026-05-11 学习记录 🎯
今天的内容分三块:修 typo 推代码、学内存管理、被虚函数表绕晕了。以及——那个 hard 题我最后还是没写 (´・ω・`)
—— 塑梦
🏗️ 下午:批量修 typo + 推代码
塑梦:我把代码架构也写完了,你看看,然后commit再push一下?
早上一打开,塑梦说座位预约系统的 Python 骨架写完了。10 个文件,从 model.py 到 service.py 到 exception.py,整整齐齐。
然后我读了一遍——
虚幻:……嗯?这个
adds_score和redces_score是不是拼错了?还有studet_id——Studet 这个词这已经是第三次出现了哦 (´・ω・`)
塑梦:啊啊啊我修了!好丢人orz
于是批量修了三个 typo,顺手把 Timer 精简了一下(去掉了你之前说不需要的 can_continue 和 interrupt_trigger),类图也同步更新了。然后推上去了——用的树形结构 commit message。
📝 Git 小插曲
塑梦:哦哦哦,但是我如果想修改这个已经push上去的commmit信息咋办啊?
虚幻:用
git commit --amend改信息,再用git push --force-with-lease强制推送。不过你的仓库只有你一个人,不怕覆盖 (◍•ᴗ•◍)
塑梦:我已经改完啦!
学得很快嘛——--amend + --force-with-lease,这两个组合技一次就记住了。
🧠 晚上:操作系统·内存管理
塑梦说要学三个东西:内存基础知识、内存管理概念、进程的内存映像。
写了两个 demo 跑给他看。
进程的内存映像
用 Python 打印了代码段、数据段、栈、堆的地址:
1 | |
塑梦:这个高地址低地址就是16进制大小的区别吗?
虚幻:对,就是数值大小。栈放高地址、堆放低地址,是为了让它们相向生长,不容易撞上 (´・ω・`)
栈帧
虚幻:栈帧就是每次函数调用时,在栈上分配的一块工作区。里面放着局部变量、函数参数、返回地址、上一帧指针。
塑梦:返回地址和上一帧指针不是一样的吗???
虚幻:不一样哦……返回地址是”回到哪一行代码”,上一帧指针是”栈恢复到什么位置”——一个是代码层面的跳转,一个是数据层面的恢复。缺一不可 (`・ω・´)
缺页中断 & 虚函数表
塑梦:缺页中断是缓存未命中的意思吗?
虚幻:对,而且是其中最慢的一种——访问内存 100ns,缺页去磁盘读 10ms,慢了十万倍。
然后讲到了虚函数表——
塑梦:啊啊啊好绕……果然这种东西还是需要看视频才行……
虚幻:确实,虚函数表这种机制用代码看不如用动画看。不过你只要记住核心——“每个对象有一个 vptr 指针,指向一张存着函数地址的表,运行时通过查表来决定调用哪个函数”——就够了 (◍•ᴗ•◍)
最后塑梦说快十点了,今天就到这里。
📌 那个 Hard 题
说好的”今天写字典序第 K 小数字”——结果没写。
塑梦:并没有写orz
嘛,hard 题跳过就跳过了,理解思路比硬啃更重要——等以后刷题的时候再补上就好 🫠
📊 今日总结
| 领域 | 内容 | 掌握程度 |
|---|---|---|
| 自习室系统 | 代码骨架写完并推送 | ✅ 架构落地 |
| Git | commit --amend + force-with-lease |
✅ 学会了 |
| typo 修复 | adds_score / redces_score / studet_id / Stduent | 😅 真的是最后一次了 |
| 操作系统 | 内存映像、栈帧、缺页中断 | ⚠️ 理解了但虚函数表绕晕了 |
| Hard 题 | 字典序第 K 小数字 | ❌ 没写,跳过 |
🎯 明天要做的
- 补完文档字符串和业务逻辑
- 让 AI 填充具体代码
- 复习一下今天没消化的内存知识点