美团暑期实习一面+二面

核心本地商业-业务研发平台
4月9日
1:面试官自我介绍+自我介绍
2:Spring源码讲一下
3:Spring源码学完什么收获
4:spring的事务了解吗?,mysql的事务呢?
5:spring的事务和mysql的事务有什么联系?
6:项目jdk什么版本?
7:默认垃圾回收器是什么?
8:介绍一下ZGC和G1?
9:项目性能调优怎么做的?垃圾回收器参数,jvm参数,
10:Seata分布式事务?
11:其他分布式事务了解吗?(模模糊糊说了MQ)
12:AT和TCC说一下?
13:看过12306官方的实现吗?
14:既然你看过一些实现,那么你想怎么优化呢?(答了锁粒度方案,和redis方案)
15:redis方案的一致性怎么解决?(答了cannal,MQ)
16:redis网络波动,用于以为下单失败,但是其实redis收到消息怎么办?(当时说的MQ,但是面试官想说的不是这个,后面复盘应该是本地消息表+定时任务)
17: 项目数据库方面有什么优化?(联合索引,explan,慢查询日志,skywalking)
18:加完索引,前端需要注意什么?
19:数据库的什么字段适合加索引 ,什么字段不适合? 
20:Hashmap源码看过吗
21:Hashmap多个线程put有什么问题?(值覆盖,极端情况下数组越界)
22:值覆盖举个例子?
23:极端情况下数组越界什么意思?
24:还有其他的情况吗?(最后答了链表和红黑树可能会空指针异常)
25:多线程用什么替代?(concurentHashmap)
26:concurentHashmap1.7和1.8区别?
27:concurentHashmap1.7为什么用了CAS?
28:concurentHashmap1.8怎么实现?(乐观和悲观两种情况)
29:1.8里的volatile是什么?
30:volatile能解决线程安全问题吗?(不能)
31:那能解决什么问题?
32:SQL题,单表topk,审错题意了,写了快20分钟用子查询才写出来,然后面试官说有没有其他方法,又写了10分钟
33:大模型相关问题,agent,Transfomer
34:反问

全称1小时40分钟,汗流浃背,后面写SQL的时候脑子已经不转了。

二面
4月15日
1:深挖项目(20分钟)
2:Redission怎么实现的?
3:为什么不用redis的setnx?
4:数据库分库分表,分库分表会有什么问题?(说了一下怎么分库分表,有什么问题没打上来)
5:某个服务器cpu飙高怎么排查(top,htop,ps, jstake, dump文件,visualVM)
6:优化sql?(skywalking,慢查询日志,索引,elplain的字段)
7:深度分页优化?(业务上不允许深度分页,子查询,索引查询,游标分页)
反问#牛客AI配图神器#

二面完,感觉g了,面试官说项目没选好,mysql没有分库,不太像分布式项目。
全部评论
我去,spring是你简历写的熟悉源码嘛,还是面试官直接问的嗷。好可怕
2 回复 分享
发布于 04-17 15:52 重庆
过了吗
点赞 回复 分享
发布于 05-10 23:12 广东
兄弟一面完多久出的结果
点赞 回复 分享
发布于 04-16 16:38 陕西

相关推荐

问题1:为什么会使用分库分表,到达了什么样的数据级别才会去加设计,是否对数据量有一个统计我的理解:看星哥之前写过 单表行数超 500 万行或者单表容量超过 2GB,推荐分库分表,但是面试的过程中怕被问自己写的项目会有这么大的数据量吗不要这么硬背,具体情况具体分析,有的表字段少,经常是条件等值查询,这样加个索引,一个亿也不用分表,有的字段多,还是范围查询,可能5000万就得分表,面试官问你你说是自己在学习分库分表应用到项目中,自己造了几千万的数据量问题2:基因法需要分表的一个数量和确定的一个东西(我的理解是分表的依据,例如大麦中是订单编号和用户id),但是正常的生产环境中是可能动态改变的,比如说需要动态扩容的话,怎么解决呢(例如当前有4个分表,但是现在需要扩充到8个分表),是使用双写吗?这个在扩容前就要考虑好能维持多少年内不需要再扩容。转转架构师在分库分表前,通过之前记录的数据增长量,做了256张表,能在7年内不需要再扩容,如果需要扩容的话,可以使用双写,新扩容表写的过程中,用新的分库分表算法问题3:如果在防止超卖的过程中,Redis不可用了,怎么解决我的理解:使用Redis集群和主从复制吗?因为Redis宕机的话数据库的数据也不能保证是最新的版本,所以得尽量保证Redis不宕机?肯定要使用redis集群模式,但可能会有主从延迟,导致从节点数据不是最新的,但关系不大。可以在用户生成订单后,修改数据库的座位和库存,然后用户支付后,再改数据库的座位和库存,每一步都做好验证。这样从节点的数据问题会降到最低。问题4:如果在当前的幂等验证逻辑中,有一个消息所对应的幂等标识符是不存在的,按照现有的逻辑是可以执行的,但是幂等验证之后的业务系统异常了,这个时候应该怎么处理呢(即通过了幂等的验证,但是后面的服务down掉了,比如说下游抛了一个异常出来)【没太明白应该回答什么,是指需要将幂等标识符重新进行设置吗】异常了就异常了呗,把这个请求的标识从redis中删除了,就像分布式锁时,业务异常也要执行解锁一样,让下一个请求进来正常执行,然后设置好标识位问题5:本地缓存为什么使用Caffine呢,为啥不用Guava因为caffine的性能要远高于Guava,没有其他复杂原因我的理解:查了下Caffine就是Guava改进而来的,可以这么说吗- Caffine在读写操作方面的性能更高,是基于异步的操作,将淘汰过期操作与读写进行分离- Caffine采用了一种结合 LRU、LFU的算法W-TinyLFU+,具有高命中率,低内存占用的特点
查看5道真题和解析
点赞 评论 收藏
分享
评论
1
35
分享

创作者周榜

更多
牛客网
牛客企业服务