字节跳动AI后端开发春招一面面经
《面试题目》
- AI项目背景询问(企业级/个人项目)
- HTTP请求涉及的协议栈
- 输入域名后的详细过程
- ARP协议介绍
- HTTP常用方法及优缺点
- 抓包原理及实现机制
- CAS(Compare And Swap)介绍
- Java线程池核心参数详解
- 线程池类型选择及适用场景
- 拒绝策略介绍及优缺点
- HashMap扩容机制
- 为什么扩容是翻倍的?
- 为什么不能是3倍或4倍?
- 扩容机制的替代方案探讨
- Token的概念及产生、识别、划分方式
- MCP协议介绍及其共同点
- AI自动审核代码流程、规则及提示词优化
- 手撕算法:二叉树路径和
《参考解析》
- HashMap扩容为什么翻倍:翻倍保证了数组长度始终是2的幂次方,这使得
(n-1) & hash等价于取模运算,效率极高;且扩容时原链表上的节点只需判断新增位是0还是1,无需重新计算哈希。 - Java线程池参数:核心参数包括核心线程数、最大线程数、存活时间、时间单位、阻塞队列、线程工厂和拒绝策略。核心是在处理高并发时通过队列缓冲任务,最大线程数应对突发流量。
- 抓包原理:通过在网络协议栈层级(如数据链路层或应用层)植入代理或中间人攻击(MITM),利用网络层拦截、解析并转发数据包,常用工具如Wireshark(基于libpcap)或Fiddler。
- CAS机制:是一种无锁的乐观锁技术,包含三个操作数:内存地址V、预期值A、新值B。只有当V等于A时才将V更新为B,否则不断自旋重试,利用CPU原语实现原子性。
- Token鉴权:Token通常由服务端签发(如JWT),包含用户信息和签名。识别时通过拦截器解析Header中的Token并校验签名,划分可分为权限Token、刷新Token等以提高安全性。