Sunday面试指南
首页学习路线

全栈面试题 · 阅读指南

校招面试题与准备路线:基础、算法和项目怎么复习

准备软件开发实习、春招或秋招,还没有形成复习顺序的同学。

3 个阶段10 篇精选阅读更新于 2026-10-08

这条路线怎么读

先用基础题找到薄弱环节,再按投递方向选前端或后端。算法需要自己写代码、跑边界用例;项目则只讲自己做过且能解释清楚的部分。这里是复习顺序,不是固定天数的速成承诺。

从第一阶段开始

把一次请求经过的基础知识串起来

从浏览器请求走到服务端,解释连接、加密、进程与线程分别解决什么问题。

  1. TCP 为什么要三次握手、四次挥手?TIME_WAIT 有什么作用?

    理解连接建立与关闭,不只记握手次数。

  2. HTTP 和 HTTPS 有什么区别?TLS 怎样防止窃听、篡改和冒充?

    把 HTTPS 的安全目标和 TLS 的作用连起来。

  3. 进程、线程和协程有什么区别?CPU 密集与 I/O 密集任务怎么选?

    根据任务类型讨论并发方式。

读完检查

打开一个 HTTPS 页面时,哪些步骤属于网络,哪些属于应用?进程与线程参与了什么?

按前端或后端方向选题

前端先看执行顺序与缓存;后端先看索引与事务。另一方向可作为补充,不必平均分配时间。

  1. JavaScript 事件循环是什么?宏任务、微任务和 async/await 怎么执行?

    前端方向:用小段代码检查事件循环理解。

  2. HTTP 强缓存和协商缓存有什么区别?Cache-Control、ETag 和 304 怎么配合?

    前端方向:结合浏览器 Network 面板解释缓存。

  3. MySQL 索引为什么用 B+ 树?与 B 树、哈希索引有什么区别?

    后端方向:从查询需求理解索引结构。

  4. MySQL 的 MVCC 是什么?Read View 如何决定一条记录是否可见?

    后端方向:理解 MVCC 与可见性。

读完检查

前端能否画出异步代码执行顺序?后端能否解释同一事务两次读到的数据为什么可能不同?

用算法和项目证明你会应用

算法写出复杂度与测试用例;项目讲清输入、处理、输出、失败和验证。

  1. Top K 问题怎么解决?堆、排序和快速选择分别适合什么场景?

    练习根据数据规模选择 Top K 的解法。

  2. 动态规划是什么?爬楼梯直接递归为什么会慢,滚动数组怎么优化空间?

    练习状态定义、递推关系和空间优化。

  3. 如何设计企业知识库问答系统?文档更新、权限和评测怎么做?

    AI 应用方向的项目拆解示例,读后对照自己的实际实现。

读完检查

能否不看答案完成一道题,再用自己的项目解释一个技术取舍?没有实测数据时不要编造性能提升。