美团到店 后台开发暑期实习面经(已offer)
时间线
3.11 第一批笔试 100%/100%/81%/9%/0%
3.15 约一面
3.21 一面
3.24 约二面
3.28 二面
3.31 OC
4.2 Offer
一面 65min
- 自我介绍
- 哪个项目最有挑战性
- 为什么觉得比较有挑战性
- 说一下Guava Cache和Redis的区别和优缺点
- Guava Cache是线程安全的吗(是,具体不了解)
- Redis如何实现高性能
- 简单说一下Redis的数据结构有哪些
- 简单说一下跳表
- 跳表是如何插入的
- Redis淘汰策略
- Redis过期删除策略
- 二级缓存的量级和缓存时间
- 了解缓存击穿吗
- 和缓存雪崩的区别,分别怎么解决
- 了解布隆过滤器吗,有什么缺点
- 用到哪些分布式锁
- 了解一致性哈希吗
- 怎么解决数据倾斜(?虚拟节点?)
- 简单说一下Redis的持久化
- 为什么选择RocketMQ,和其他MQ的区别(只是简单了解)
- RocketMQ怎么保证消息的顺序(答了发到同一个队列,似乎有其他方式)
- RocketMQ怎么保证消息的可靠
- 说一下你理解的事务
- 隔离级别
- 简单说一下MVCC
- 分布式事务实现方式
- InnoDB和MyISAM的区别
- MySQL里面的锁分类
- 乐观锁、悲观锁
- 为什么用B+树而不是B树和红黑树
- replace into 了解吗(不了解)
- 有用到哪些设计模式(没有)
- 说一下IOC和AOP
- Spring Boot的优势
- Spring支持哪些作用域(没太关注)
- 理解的Java的特性
- 处理过异常吗
- 异常和Error的区别
- 平常用Java几
- Java 8的新特性
- 说一下HashMap升级后的逻辑
- 说一下ConcurrentHashMap
- 项目中有使用多线程吗
- 创建线程的方式
- 线程池的参数
- JVM的内存模型
- 内存区域哪些地方会OOM
- Linux常用命令
- 进程调度算法
- 线程同步/进程同步方式(答成进程通信。。。)
- 零拷贝
- 死锁的条件和预防
- IO多路复用及其三种实现方式
- HTTP和HTTPS的区别
- UDP和TCP在哪一层,有什么区别
- 滑动窗口,拥塞窗口的作用
- HTTP错误码
- 为什么不是四次挥手
- 有哪些网络攻击方式
- URL到页面完整加载的过程
- ReentrantLock和syncronized差别
- 10亿个整数找出不同的整数,限制1G内存
- 常见排序的复杂度
- 重排链表
二面 85min
- 自我介绍
- 主要使用语言
- 实习项目
- 介绍秒杀项目(**说的时候穿插细节了,面试官打断说指向听一下全貌)
- 核心考虑的问题有哪些,解决思路是什么(缓存提高下单性能,MQ保证一致性)
- 事务型消息的特征(半消息,本地事务提交时转移)
- 消费失败怎么办(重试,死信队列)
- 消费失败引起的不一致会带来什么影响,有解决思路吗
- 什么是库存流水号,什么时候产生(**回答上一个问题的时候提到,但没有解释,可以预先解释下)
- 库存流水和库存的一致性如何保证(DB本地事务)
- Redis扣库存和生成订单是两步操作,第二步失败了会有什么问题(少卖)
- 分库分表是什么
- 分库分表要使用本地事务,怎么保证库存流水和商品库存在一个DB上(分到同一个库)
- 允许少卖,后续如何纠正(去看死信队列)
- 有没有更有实际操作性的办法(瞎答了日志,面试官没回应)
- 有没有了解过实际企业里秒杀是怎么做的(不了解)
- 一致性保证有没有其它思路(三种策略)
- 如果是两个分布式RPC服务,如何保证一致性(事务型消息)
- 除了事务型消息还有没有什么方案(2PC)
- 说一下2PC
- 2PC实际中会有什么问题(单点)
- TCC知道吗(**不知道)
- 下单操作具体性能指标
- 时间具体花在哪些步骤上(猜测Redis客户端IO,MySQL)
- 这些只是猜测,有没有实际看过(没,但说了可以用火焰图)
- 压测时机器的关键指标有没有记录(记了CPU使用情况)
- 服务器是怎么部署的(Tomcat)
- Tomcat的线程数量
- 做了什么优化(限流、验证码)
- 为什么用RocketMQ(想用事务型消息)
- MQ选型除了功能之外,还有什么其它考虑(吞吐量,延迟)
- 注册中心在MQ里干啥用的
- RocketMQ消费机制(拉)
- Guava Cache干嘛用的,这么用的缺点和问题是什么(更新不及时,可以用MQ解决)
- 多台机器情况下同一Group只会消费一台,怎么解决(广播消费模式)
- 广播消费一部分成功一部分失败怎么办(每个消费者单独维护offset)
- Spring Boot/Spring/Sprint MVC的关系
- Application Context/BeanFactory/FactoryBean区别
- Spring Bean初始化过程(答了生命周期)
- XML定义状态机,可以通过Spring的什么机制完成(不会,跳过)
- Guava Cache的参数、过期机制(**答成LRU)
- CMS和G1,结构化地对比一下(目标、STW、各阶段区别)
- 浮动垃圾有解决吗?(**答成对象消失。。)
- CMS浮动垃圾会产生什么后果
- 其他区别(内存碎片、CMS针对Old,G1是Mix、卡表)
- CMS和G1如何选择
- G1的缺点(内存开销大)
- 做过OOM的分析吗(没有,但答了可以用dump+MAT)
- shallow heap和retained heap区别(没听说过)
- 算法题:LRU缓存
- 能不用双链表吗
- 如果用单链表可以实现吗,会有什么问题
- 并发安全LRU怎么做
- 反问建议(表达、自上而下结构化思考、全面、务实)
- 反问期望(看基本面:学习协同沟通表达能力、逻辑认知;看专业能力;长期价值观、责任感)
- 反问什么时候出结果(一周内)
- 确认实习时长、base、手上有没有其它意向
OC
30号晚上十点HR打了两个电话,lz在洗澡没接到,还不能回拨。
31号等了一整天,晚上九点终于再次打来,沟通了一下实习时间之类的,没问题的话就提交审批。
Offer邮件
陆陆续续面了一个月,终于收到第一个offer。团子的面试体验真心不错,面试官都很礼貌很有耐心。
牛客上的面经帮助很大,感谢各位大佬的分享!顺便评论区求一下上海租房群~
#美团##暑期实习##面经##offer##我的实习求职记录#