附录 C:面试高频题
语言核心
- 解释所有权三条规则,并举 move 例子。
&T与&mut T为什么不能同时存在?String和&str区别?Copy与Clone区别?Rc与Arc区别?何时用Mutex?- 什么是生命周期?为何有时可省略?
panic与Result如何选择?- 静态分发和动态分发差异?
异步与后端
async fn返回什么?谁来执行它?- 为什么不该在 async 里做阻塞 IO?
Send/Sync对 axum handler 有何影响?- 连接池为什么必要?
- 如何设计统一错误到 HTTP 状态码?
- 如何测试 handler 而不启动真实端口?
场景题
- 实现限流中间件思路。
- 文件上传如何限制大小与类型?
- 列表接口如何分页并保持稳定排序?
- 如何避免 SQL 注入?(参数化查询)
- 配置热更新可行吗?如何做状态替换?
追问加分点
- 零成本抽象的具体例子(迭代器、泛型单态化)
- 内存泄漏在安全 Rust 中仍可能发生(
Rc环) - 取消安全与幂等 API 设计