校招 未知部门 / 后端开发 / 二面
[面试日期] 2026-05-24 [面试时长] 未知
[学校背景] 兰州大学 | 985 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>字节网络2面凉经 5.21 后端开发</h2>
<ol>
<li>
<p>请先做个自我介绍。</p>
</li>
<li>
<p>在实习项目中,有用 AI 辅助 coding 吗?</p>
</li>
<li>
<p>实习项目相关(占大约一半面试)</p>
</li>
<li>
<p>无锁队列的实现原理是什么?对比其他队列的优势和劣势?为什么不是所有场景都用无锁队列?</p>
</li>
<li>
<p>锁的种类有哪些?各自的使用场景?</p>
</li>
<li>
<p>TCP 保证可靠传输的机制有哪些?</p>
</li>
<li>
<p>能讲一下 TCP 连接的状态机流转过程吗?</p>
<blockquote>
<p><strong>一、连接建立(三次握手)</strong></p>
<p>假设客户端主动发起连接,服务器被动监听。</p>
<table>
<thead>
<tr>
<th>步骤</th>
<th>客户端状态变化</th>
<th>服务端状态变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>初始</td>
<td><code>CLOSED</code></td>
<td><code>LISTEN</code>(监听端口)</td>
</tr>
<tr>
<td>1. 客户端发送 SYN</td>
<td><code>SYN_SENT</code></td>
<td>–</td>
</tr>
<tr>
<td>2. 服务端收到 SYN,回复 SYN+ACK</td>
<td>–</td>
<td><code>SYN_RCVD</code></td>
</tr>
<tr>
<td>3. 客户端收到 SYN+ACK,回复 ACK</td>
<td><code>ESTABLISHED</code></td>
<td>–</td>
</tr>
<tr>
<td>4. 服务端收到 ACK</td>
<td>–</td>
<td><code>ESTABLISHED</code></td>
</tr>
</tbody>
</table>
<p><strong>状态说明</strong>:</p>
<ul>
<li><code>LISTEN</code>:服务器等待连接请求。</li>
<li><code>SYN_SENT</code>:客户端已发送 SYN,等待服务端确认。</li>
<li><code>SYN_RCVD</code>:服务端收到 SYN,已发送 SYN+ACK,等待客户端的 ACK。</li>
<li><code>ESTABLISHED</code>:连接建立成功,可以传输数据。</li>
</ul>
<p><strong>二、连接释放(四次挥手)</strong></p>
<p>假设客户端主动关闭,服务端被动关闭。</p>
<table>
<thead>
<tr>
<th>步骤</th>
<th>主动关闭方(客户端)</th>
<th>被动关闭方(服务端)</th>
</tr>
</thead>
<tbody>
<tr>
<td>初始</td>
<td><code>ESTABLISHED</code></td>
<td><code>ESTABLISHED</code></td>
</tr>
<tr>
<td>1. 主动方发送 FIN</td>
<td><code>FIN_WAIT_1</code></td>
<td>–</td>
</tr>
<tr>
<td>2. 被动方收到 FIN,回复 ACK</td>
<td>–</td>
<td><code>CLOSE_WAIT</code></td>
</tr>
<tr>
<td>3. 主动方收到 ACK</td>
<td><code>FIN_WAIT_2</code></td>
<td>–</td>
</tr>
<tr>
<td>4. 被动方发送 FIN</td>
<td>–</td>
<td><code>LAST_ACK</code></td>
</tr>
<tr>
<td>5. 主动方收到 FIN,回复 ACK</td>
<td><code>TIME_WAIT</code></td>
<td>–</td>
</tr>
<tr>
<td>6. 被动方收到 ACK</td>
<td>–</td>
<td><code>CLOSED</code></td>
</tr>
<tr>
<td>7. 主动方等待 2MSL 后关闭</td>
<td><code>CLOSED</code></td>
<td>–</td>
</tr>
</tbody>
</table>
<p><strong>状态说明</strong>:</p>
<ul>
<li><code>FIN_WAIT_1</code>:主动方已发送 FIN,等待对方 ACK。</li>
<li><code>CLOSE_WAIT</code>:被动方收到 FIN,等待应用程序关闭连接。</li>
<li><code>FIN_WAIT_2</code>:主动方收到 ACK,等待对方发送 FIN。</li>
<li><code>LAST_ACK</code>:被动方已发送 FIN,等待对方 ACK。</li>
<li><code>TIME_WAIT</code>:主动方收到 FIN 并回复 ACK,等待 2MSL(Maximum Segment Lifetime,通常 2 分钟)确保最后的 ACK 能被对方收到,并让旧报文在网络中消失。</li>
<li><code>CLOSED</code>:完全关闭。</li>
</ul>
</blockquote>
</li>
<li>
<p>进程间通信方式有哪些?共享内存的实现原理是什么?</p>
</li>
<li>
<p>C++ STL 容器在插入/删除后,迭代器失效的情况?举例说明。</p>
</li>
<li>
<p>C++11 之后的智能指针有哪些?使用场景?<code>shared_ptr</code> 多线程修改需要加锁吗?为什么?</p>
</li>
<li>
<p>算法设计题:100 亿个 32 位整数,内存限制 256MB,如何找到中位数?</p>
</li>
<li>
<p>设计题:管理 1000 万个定时任务,支持 add、超时回调、cancel 操作。请说出关键设计思路。</p>
</li>
<li>
<p>手撕</p>
</li>
<li>
<p>你对岗位有什么问题吗?(工作内容、实习生评估标准、实习时间等)</p>
</li>
</ol><a>#发面经攒人品#</a>
AI 推荐面试题
