生服部门确实逆天。。。
点赞 评论

相关推荐

03-12 20:34
门头沟学院 Java
### 字节生活服务成都一面面经---#### **一、项目相关**1. **第一个项目**     - **登录模块实现**       - 短信登录流程如何设计?验证码如何存储(Redis哈希结构)?       - Token与Cookie的区别?分布式场景下如何解决Session共享问题?       - Token刷新机制如何优化用户体验?     - **秒杀场景设计**       - 如何解决库存超卖问题?(乐观锁、分布式锁)       - 分布式锁的实现原理(Redis Redisson的可重入、超时续约机制)?       - 如何通过消息队列(RabbitMQ + Lua脚本)优化秒杀性能?  2. **第二个项目**     - 如何基于Redis发布订阅实现动态调整?     - 如何采集线程池指标并上传监控中心?  ---#### **二、技术问题**1. **Redis**     - Redis数据结构及适用场景(String、Hash、ZSet等)?     - ZSet如何实现排行榜?Hash如何存储对象?     - Redis分布式锁的底层实现(Redisson的Watch Dog机制)?  2. **MySQL**     - 索引类型(主键索引、联合索引、前缀索引)?     - B+树的结构特点?联合索引的最左匹配原则?     - 事务ACID特性及隔离级别(读未提交、读已提交、可重复读、串行化)?  3. **网络协议**     - HTTP请求报文组成(请求行、请求头、请求体)?     - `Content-Length`的作用及必要性?  ---#### **三、编程题**1. **矩阵中的最大岛屿面积**     - **题目**:给定二进制矩阵,计算由相邻1组成的最大面积。     - **思路**:DFS/BFS遍历,标记已访问节点。  2. **二叉树路径总和**     - **题目**:找出根节点到叶子节点路径和为给定值的所有路径。     - **思路**:递归遍历,维护路径和当前和,叶子节点时校验结果。  ---#### **四、反问环节**1. 部门业务方向?     - 生活服务业务(类似美团,聚焦团购、酒旅等场景的用户体验优化)。  2. 对实习生的要求?     - 基础技术能力、需求落地能力、学习能力。  3. 面试流程?     - 技术面2-3轮 + HR面。  4. 实习时间要求?     - 一周5天,持续半年以上。  ---#### **五、总结建议**- **项目**:需深入细节,如Redis数据结构选型、锁的优化逻辑。  - **基础**:加强MySQL索引原理、HTTP协议细节、Redis底层机制。  - **代码**:注意边界条件(如矩阵越界)、DFS/BFS模板熟练度。
查看16道真题和解析
点赞 评论 收藏
分享
03-19 09:26
门头沟学院 Java
### **一、项目深挖**1. **项目技术亮点**     - **校园美食会项目**:基于Redis实现分布式锁解决超卖问题,使用乐观锁处理一人多单场景,通过双拦截器优化Token刷新逻辑。   - **动态线程池组件**:基于Redis发布订阅机制实现线程池参数动态调整,结合定时任务上报核心参数。2. **短信登录流程**     - 用户输入手机号→后端生成验证码并存储Redis(Key为手机号,Value为验证码)→调用阿里云短信服务发送→用户提交验证码后校验→未注册用户自动创建账号。3. **Token刷新逻辑**     - 拦截器拦截所有请求,校验Token有效性后刷新Redis中Token的过期时间,保障用户持续活跃状态。4. **分布式锁优化**     - 单机环境使用`synchronized`锁用户ID;分布式场景改用Redis实现可重入锁,通过Hash结构记录线程标识和重入次数。---### **二、基础技术问题**1. **HTTP vs HTTPS**     - **HTTP问题**:明文传输存在安全风险(窃听、篡改)。     - **HTTPS优化**:通过SSL/TLS协议加密,结合非对称加密(证书验证)和对称加密(数据传输)提升安全性。2. **跨域问题(CORS)**     - 跨域触发条件:协议、域名、端口不一致。解决方案未深入讨论,面试官提示需补充JSONP、CORS或反向代理等方案。3. **ThreadLocal应用**     - 用于拦截器中用户信息传递,通过线程隔离的ThreadLocalMap存储数据,避免多线程竞争。---### **三、Redis相关**1. **数据结构选择**     - Token存储使用String类型(Key为Token,Value为用户信息),设置过期时间实现自动清理。2. **分布式锁实现**     - 通过Redis的SETNX命令和Lua脚本保证原子性,记录线程标识和重入次数支持可重入性。---### **四、MySQL与索引**1. **联合索引最左匹配原则**     - **场景1**:`WHERE b=1 AND a=2`(联合索引(a,b,c))→ **命中索引**(优化器自动调整顺序)。     - **场景2**:`WHERE a>1 AND b=2` → **索引失效**(a范围查询后b无序)。     - **场景3**:`WHERE a=1 AND b>2` → **命中a、b索引**(a等值查询后b有序)。2. **SQL执行顺序**     - 优先级:`FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY > LIMIT`。---### **五、网络与协议**1. **WebSocket应用**     - 用于商家接单实时通知,对比HTTP轮询优势:长连接、低延迟、服务端主动推送。这个地方被拷打了websocket底层实现以及如果用http来实现要websocket相同的功能要怎么实现?还问了服务端能向客户端发http请求吗?---### **六、反问环节**- 候选人提问字节技术氛围,面试官简要介绍业务方向(未详细记录)。---### **评价与建议**- **优势**:项目设计合理,对分布式锁、Token机制等场景理解较深。  - **待提升**:跨域解决方案、服务端主动通知实现(如WebSocket底层机制)、索引失效场景判断需更严谨。  - **面试难度**:中等偏上,侧重项目落地能力和底层原理。
查看12道真题和解析
点赞 评论 收藏
分享
牛客网
牛客企业服务