833 字
约 2 分钟
7
S25-J05 · 原理速查:树、协议、JIT、栈帧

适用读者:原理题"知道名词但讲不深"的人。
前置:S03(算法)、S02-B04(TCP)、S05-J05(JVM)。
覆盖旧文:2391(512) 2388(413) 2585(767) 2582(428) + 原理类 = 4,041 点。
扩展点:E-S25-014(原理题的"三层答法")。
上一篇:S25-J04 · 系统设计面试:从需求到方案
下一篇:S25-J06 · 工程素养。


1. 一句话结论

原理题按"定义 → 机制 → 边界"三层答:只答定义是 L1,能讲机制是 L2,能说"什么时候不成立"才是 L3。

层 例子(B+ 树)
L1 是一种多路平衡树
L2 非叶存索引、叶存数据 + 链表串联
L3 为什么数据库用它:层数低(IO 少)+ 范围查询友好;对比 B 树:B 树非叶也存数据,同样层数能存的键更少

2. 四个高频原理点

2.1 B 树 vs B+ 树(A-2391)

维度 B 树 B+ 树
数据位置 所有节点 只在叶子
范围查询 需中序遍历 叶子链表
扇出 较低 更高(层数更少)

2.2 UDP 一定比 TCP 快吗(A-2388)

答:"不一定。UDP 无连接/无重传,协议开销小;但丢包时应用层要自己重传——总成本可能更高。快的是"开销",不是"总时延"。"

2.3 JIT(A-2585)

层 内容
L1 即时编译
L2 解释执行 → 热点探测 → C1/C2 编译
L3 去优化(Deopt):假设被打破就退回解释

2.4 栈帧结构(A-2582)

组成 作用
局部变量表 参数与局部变量
操作数栈 计算中间值
动态链接 指向常量池
返回地址 调用方位置

3. 三层答法(E-S25-014)

① 一句话定义(10 秒)
② 机制/流程(60 秒)
③ 边界/对比(60 秒)← 决定档次

判据:"我能说出它什么时候不适用吗?" 不能 → 停在 L2。


4. 常见"答错"的原因

原因 例子
版本混淆 "JDK 8 之前字符串常量池在堆"
绝对化 "UDP 一定比 TCP 快"
只背结论 说不出为什么

5. 五个误区

误区 真相
"原理题背定义就行" 要讲边界
"UDP 一定更快" 只省协议开销
"JIT 只会优化" 还有去优化
"栈帧只有局部变量" 还有操作数栈/动态链接
"B 树和 B+ 树差不多" 扇出与范围查询差异大

6. 自检

  1. 三层答法各是什么?
  2. B+ 树相对 B 树的两个优势?
  3. "UDP 一定更快"错在哪?
  4. 什么是去优化?
  5. 栈帧的四个组成?

7. 下一篇

S25-J06 · 工程素养:习惯、工具与代码质量

原理讲完,下一篇讲"为什么好习惯是加分项"。


本篇属于系列《S25 · 求职与面试》。旧文来源:A-2391/2388/2585/2582 + 原理类卡;扩展点 E-S25-014。

S25-J05 · 原理速查:树、协议、JIT、栈帧
https://www.clxhxhhr.top/posts/5586/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。