27双非美团日常实习一面凉经(初面)

9.2号投递,9.16约面,泡了两周左右。
9.18号面试。
全长40分钟左右。

--------实习项目拷打环节--------

1. 面试官自我介绍,介绍部门,业务等
2. 自我介绍(公式化)

3. 介绍一下实习项目(开始介绍,着重说了一下项目中邮件推送功能,介绍自己实习产出)

4. 你说项目中用到了分布式id?说一下常见分布式id
答: 时间戳,uuid,雪花算法,我说项目中用的雪花算法。

5. 说一下雪花算法具体怎么实现的
答: 说的时候有点紧张,不过说清楚了雪花id根据每秒时间生成保证的有序性。

6. 项目用到了jwt?说说jwt。
答: 介绍了一下jwt的结构,然后项目中使用redis存储token,介绍的时候我顺便说了一下token双刷,token黑名单等。

7. 说一下threadlocal原理(我简历里没写,被问到了,不过幸好八股记得还算全)
答: threadlocal的key是弱引用,必须手动释放,否则会有内存泄漏,应用场景:一个线程内传递参数,可以减少实际方法中的参数传递。等等

---------玩具项目拷打环节(xfg的拼团)-------

8. 你说项目中用到了规则树是吧,讲解一下具体怎么实现。
答: 这里差点忘了,玩具项目好久没看了,说了一堆,勉强圆回来了。

9. redis的bitmap具体怎么来做人群过滤的?说一下bitmap。
答: 公式化bitmap八股,然后说的时候结合一些经典场景说了一下用户过滤。

10. 责任链模板讲一下,具体怎么做的?
答 : 依旧结合场景,靠当时做项目的回忆来答。(感觉这个项目还需要再复习一下,问的还挺多的)

-------实习项目二次拷打------

11. 消息队列的可靠性怎么保证?重复消费,顺序消费

答: 公式化消息队列八股,消息重试、唯一id、消费者确认、生产者确认、死信队列等等等等(开始吟唱)

12. 重点讲讲你实习中消息推送这个功能吧,为什么要用rpc和消息队列?

答: 这个实习时候确实做过,所以答的挺顺畅。

13. 场景设计题目: 如果现在我们需要对接很多个第三方支付的功能,比如微信,支付宝等,但是具体实现要分离开,同时我还要在每个支付功能的具体实现前后添加内容。请问上述场景的话,让你设计,你会用几种设计模式实现呢?

答: 首先可以使用策略模式,类比实习项目中使用策略模式对接不同的第三方邮件发送服务,
然后的话要在每个具体支付功能前后加代码的话,可以使用代理模式来进行添加

14. 追问: 策略模式一般搭配什么模式使用呢?
没答出来,面试官提示工厂模式。

15. 你项目中提到了做了慢查询sql的优化?你来说说定位慢查询,排查的整个流程。

答: 首先查询全局变量查看慢查询是否开启,同时根据获取到的日志路径,通过mysqldumpslow查看日志,找到日志问题,实际执行的时候可以使用explain关键字查看,后面就说索引失效、回表、实际执行语句时不能用函数等等。

答到这里其实答的都很好,后面面试官问了几个java基础问题(这里太久没看,模糊了),答得一坨,想找个地缝钻进去。

16. 说一下访问修饰符
答: 一共四种,答了private,public,protected和各
最后我把默认的没有修饰符的情况漏了,说一下各自作用域,没答出来没有修饰符的情况的作用域。

17. 说一下runtimeException和普通异常的区别。
答: 脑子蒙住了,没答出来。后面面试官说runtime会导致编译不通过,其他的话,抛出的话不会影响。

18. java8的stream流了解吗,list通过stream转为map该怎么写,说一下。

答: 又蒙了,忘了这个api了。只说了一下.stream().filter(),后面的记不太清楚了。

最后两道leetcode算法手撕。
1. 二分查找(板子题,直接秒)
2. 删除链表的倒数第n个节点(直接秒)

最后反问环节:
1. 请问如果面试通过的话,一共几面?
答: 两轮技术面,一轮hr面

2. 请问我还有什么不足,有什么需要提升的。
答: 算法没问题,就是java基础概念需要加强,要多注重基础。

总体感受:
面试官人很好,我不会的都会一个一个回答,也不会存在打断,面试体验很好。

许愿过一面

---------------
寄,9.22发感谢信了
#牛客AI配图神器#
全部评论
蹲后续
点赞 回复 分享
发布于 09-19 15:45 北京
mrk
点赞 回复 分享
发布于 09-28 22:38 吉林
兄弟哪个部门呀
点赞 回复 分享
发布于 09-25 14:55 上海
这么牛逼一面都挂啊?
点赞 回复 分享
发布于 09-25 11:20 北京
接好运
点赞 回复 分享
发布于 09-22 20:48 北京
我7月投美团,2个多月一直在初筛
点赞 回复 分享
发布于 09-22 09:27 北京
接好运
点赞 回复 分享
发布于 09-22 09:21 北京

相关推荐

09-11 19:58
门头沟学院 Java
项目拷打 1.谈谈对整个rpc远程调用的一些理解2.rpc框架的缓存层的更新策略和过期逻辑是怎么样的?(过期机制没有实现(踩雷))3.zookeeper回调失败了怎么办呢?(没有考虑到)4.你有了解过zookeeper大概能抗多少qps(不知道,就随便猜了个数比如1万)5.你还了解其他的一些服务发现的中间件它们的管理服务注册与发现的一些方法吗(简单说了nacos的轮询)6.说一下不同序列化协议的一些差别,以及为什么一个rpc框架为什么要那么多的序列化协议7.继续第6题,那么我们线上技术选型的时候该怎么去选这些序列化协议8.你本地缓存里的缓存数据是什么格式的(面试官补充:你存的这个value是通过json序列化缓存到本地的,还是对象本身缓存到本地的,还是通过一些压缩方式)9.假如说如果通过不同的序列化格式缓存到本地的话,他们的区别是什么(面试官补充除了这个还有什么深层次的区别以及应用上考虑的因素)?(这里我答的太唐了,直接说内容是不一样的)10.对微服务的理解你能谈一谈吗?11.既然微服务那么好,为什么还会有单体架构设计的存在呢(从软件体系结构上来讲)?(此处懵逼,我直接说易于开发,性价比高)12.微服务的一些劣势是什么呢及它的一些痛点?(从我的角度出发)13.我看你项目中聊到负载均衡,你能讲讲在计算机网络中(4层模型和7层模型的在负载均衡的区别或者应用上的区别)?### 八股拷打jvm调优你有什么思路吗 ?启动jvm的时候,可以指定一些jvm参数,那你怎么设置呢?OOM(内存溢出)有那些常见的场景呢?以及分别的解决方案大概是怎么样子?线上发生OOM,你有什么排查思路么?你能说说G1垃圾回收器的工作原理吗?java语言,如何判断两个对象相等呢?了解深拷贝和浅拷贝吗,如何实现深拷贝?http中post请求和get请求有什么区别?get请求用于更新数据能更新吗?如果可以为什么要用post呢?get请求可以携带body吗?http的状态码都有哪些?http和https的区别是什么?redis有哪些常见的数据结构?zset的底层数据结构是什么?跳表和哈希表的区别是什么?跳表执行插入和删除操作,哈希表执行插入和删除操作,底层是怎么做的?------------------------------------------------------------------------------手撕算法(两题都做不出来)leetcode 402. 移掉 K 位数字(原题改了一点存在前导零的情况但是不计数删除次数)leetcode 162. 寻找峰值(不可以使用暴力)-------------------------------------------------------------------------------//总结自己对项目的理解还不够,算法刚开始刷,基础不行,还需要继续努力
查看29道真题和解析
点赞 评论 收藏
分享
评论
3
25
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务