SHEIN 社招后端一面:项目追问与 408 基础
- 轮次
- 一面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 自我介绍。
- 聊项目并追问。
- 换工作的原因是什么?
- 408 基础:内存管理是怎么做的?
- 函数调用的原理和流程是什么?
- HTTP/1、HTTP/2、HTTP/3 有什么区别?
- 在浏览器输入一个网址之后,发生了什么?
- 反问。
《参考解析》
内存管理
现代操作系统用虚拟内存给每个进程独立的地址空间,再通过页表映射到物理内存。程序访问的地址是虚拟地址,MMU 查 TLB,未命中再走多级页表;页面不在内存时触发缺页异常,由操作系统从磁盘换入。物理内存按页管理,常见页面置换算法有 LRU、Clock;分配器再在页之上做小对象管理,减少系统调用和碎片。回答时可以把「虚拟地址 → 页表 → 物理页 → 缺页处理」这条链路讲完整。
函数调用的原理和流程
调用方先把参数按调用约定放入寄存器或栈,然后执行 call 指令,把返回地址压栈并跳到被调函数;被调函数建立栈帧,保存旧的基址指针、为局部变量分配空间,执行完把返回值放入约定寄存器,恢复栈帧并 ret。栈帧里通常包含返回地址、旧 rbp、局部变量和临时空间。递归过深会耗尽栈空间,本质就是栈帧不断累积。
HTTP/1、2、3 的区别
HTTP/1.1 默认持久连接,但同一连接上的请求仍可能被队头阻塞,浏览器只能靠多开连接并发。HTTP/2 引入二进制分帧和多路复用,一个连接上并行跑多个流,并支持头部压缩和服务器推送,但 TCP 层丢包仍会阻塞所有流。HTTP/3 把传输层换成基于 UDP 的 QUIC,在用户态实现可靠传输、拥塞控制和 TLS 1.3,解决了 TCP 层的队头阻塞,连接迁移和握手延迟也更好。
浏览器输入 URL 之后
先解析 URL,查浏览器缓存、系统缓存和 DNS 得到 IP;然后建立 TCP 连接,HTTPS 还要做 TLS 握手;接着发送 HTTP 请求,服务端经过负载均衡、应用处理和数据库查询返回响应;浏览器解析 HTML、构建 DOM 和 CSSOM,执行 JavaScript,布局、绘制并合成页面。期间还会并发请求图片、脚本、字体等子资源。
换工作原因
按「当前岗位能给我的」和「下一阶段想补的」来讲,避免抱怨前公司。比如现有业务已经比较稳定,想进入更大流量、更完整的链路,或者想从业务开发转向更有技术深度的方向;同时说明为什么是这家公司、这个岗位,能把个人目标和岗位需求对上。