美团暑期实习一面(Java后端)
面试题目
1. 开场与背景
- 自我介绍
- 科研方向相关问题
- 项目经验:是否进行过部署
2. 计算机网络
- 访问一个网站会经过哪些环节?
- HTTPS中SSL/TLS的详细描述
- 描述TIME_WAIT状态,它出现在TCP连接的哪个位置?
3. Linux与数据库
- Linux常用命令有哪些?
- 如何让脚本在后台运行?
- 数据库主从同步原理
4. 微服务与算法
- 是否了解服务降级、服务熔断等限流机制?
- 手撕算法:判断二叉树是否为平衡二叉树
参考解析
1. 访问网站环节:涉及DNS解析(域名转IP)、TCP三次握手建立连接、TLS握手(加密传输)、HTTP请求发送、服务器处理请求、HTTP响应返回及浏览器页面渲染。重点在于理解全链路的协议交互。
2. TIME_WAIT状态:出现在TCP主动关闭连接的一方(通常是服务端)。目的是为了确认对方已收到ACK包,并确保延迟的报文在网络中消逝,防止影响后续新连接。
3. Linux后台运行:常用nohup command &或使用screen/tmux工具。理解&将任务放至后台,nohup防止关闭终端导致进程被杀。
4. 服务熔断/降级:限流是指限制并发量;熔断是指调用方在检测到下游服务失败率过高时,直接切断调用以保护系统;降级是在系统压力过大时关闭非核心服务以保证核心业务正常运行。
5. 平衡二叉树:核心思路是递归计算左右子树的高度差。若任意节点的左右子树高度差绝对值超过1,则不平衡。需同时返回高度信息和布尔值结果。