拼多多服务端研发内推最新面经

📍面试公司:拼多多

👜面试岗位:服务端研发

26届多多内推码
内推码 Aw0TNmXngV
内推链接 https://careers.pddglobalhr.com/campus/grad?t=Aw0TNmXngV

📖面试问题:先项目穿插八股,后纯八股,最后手撕,后面几个问题都答得不怎么样,大概率挂了

自我介绍(简历上的项目:黑马点评 + RPC框架 + 两个科研项目)

首先问了一下研究方向,因为我那两个科研项目是用Python写的,所以面试官首先问我对Python的基本原理了解吗?本来估计想问我线程模型、内存管理机制啥的,但我也只是使用了Python,并没有对底层做研究,就没继续问

你第一个项目是科研项目还是课题项目?老实回答说是自学项目。是你独立开发的吗?依旧老实回答。

说说项目亮点。答的缓存那一套东西以及缓存穿透、缓存击穿、缓存雪崩。

缓存穿透怎么解决?存储空对象。那存储的key是什么?那如果我是一名攻击者,我每次都随机生成不同的key去查询,那每一次都是穿透的,你怎么解决?(应该用布隆过滤器的,没想到)

缓存击穿怎么解决?双重检测锁。缓存雪崩怎么解决?设置随机的过期时间去尽可能预防。

redis怎么设置过期时间?set命令+ex或ps参数。你用过这个参数吗?一般是在SpringBoot上用RedisTemplate去设置的。除了set+ex外,还有其他命令去设置过期时间吗?印象中有个expire命令。

缓存击穿是有大量热Key并发访问,那redis中如何检测热key?那热key会有什么问题呢?(检测没想起来,后者答的一个缓存雪崩,另一个是节点压力过大,可以考虑集群)

集群怎么让一个请求打到不同的节点上?负载均衡

redis对过期key的删除策略有哪些?(忘了,应该回答惰性删除和定期删除的)

redis中ZSet底层是用什么数据结构来实现的?存储元素数量在多少时会从ziplist切换到skiplist?这个阈值的默认值是多少?(麻了,太久没背想不起来了,答得不咋地)

那讲讲第二个项目吧。注册中心用的是zookeeper是吧?那zookeeper挂了会有什么影响吗?我那个项目有个本地缓存,服务发现完后会记录到本地,所以答的是会从本地去找,直到zookeeper恢复。

你的RPC框架负载均衡是怎么实现的?有实现基于权重的负载均衡策略吗?如果要你去实现的话,你怎么实现?

有了解其他RPC框架吗?比如gRPC、Dubbo这种?你知道Dubbo的基于权重的负载均衡策略是怎么实现的吗?(又麻了,不了解这些)

你序列化用来Json和Hessian两种是吧?你这个Json是FastJson还是Jackson?FastJson。为啥不用Jackson呢?这两者相关的性能你了解吗?相同点与不同点,有了解吗?(再度麻了,总不能说网上教程用的是FastJson,所以没用Jackson吧)

你项目是用的SpringBoot是吧,你项目是怎么打包发布的?用pom.xml文件设置,并用IDEA配置的Maven进行的打包。有直接使用命令吗?

Maven里面有哪些包依赖管理的原则?传递性依赖如果最终有版本冲突了,最终是由哪个版本决定的?依赖冲突怎么解决,通过什么手段?(这个Maven属于是忘完了,就只会用IDEA那些了生命周期)

你了解JVM的垃圾回收吗?G1垃圾回收器哪些过程可以和用户线程并行呢?

G1和CMS对比之后,你觉得CMS有哪些优势呢?

G1里还有Survivor区域吗?所以它垃圾回收的时候也是按照S1、S2来做回收吗?

G1中的Region可以分为哪几种类型呢?

你对card table了解吗?(这个也太冷门了吧)

MySQL有哪些方式可以解决回表问题?只想起一个覆盖索引,后面面试官问我索引下推了解吗?我答上来了(应该是面试官在暗示我这个操作也可以减少回表)

你知道Read View里面有哪些比较重要的关键字的吗?为了实现事务的版本并发控制,MySQL表里面有哪些隐藏字段来实现事务功能?(这两问一面之前背过,结果忘了)

你知道order by是怎么实现的吗?我想不到,就答了如果有索引的话,B+树这个数据结构可以优化order by。后续我去查了一下,如果没有索引,是通过filesort里的sort_buffer实现的(之前完全没听过)

你这些项目都是用git去管理的吗?有用过哪些命令?你知道git pull和git fetch的区别吗?(没背过,查了一下两者都可用于从远程仓库获取数据,但后者只会获取远程仓库的最新代码和更新信息,但不会更改本地代码,前者则还会尝试自动将这些更改合并到你的当前分支中,也就是git pull == git fetch + git merge)

最后是手撕lc hot100里的4. 寻找两个正序数组的中位数,牛客上也有这题两个升序数组的中位数,要求最低的时间和空间复杂度。面试结束后搜了一下,是hard题,可惜之前没刷过,就只能先和面试官讲了最基本的归并找中位数的思路,也说了这种方法的时间复杂度和空间复杂度,但不符合题目要求的最低时间与空间复杂度,临时想的话没想出来,后续再补刷一下吧。

反问环节,因为差不多已经能看到感谢信(如果有的话)在向我挥手了,所以就只问了面试结果大概多久可以出来。

🙌面试体验:虽然面试官没给压力,语气挺温和的,没答上来的也没多问,但是问的题目个人感觉难度都挺高,加上我个人准备不充分,感觉基本是无了,面到一半心就差不多凉了,不报什么希望了。只能再投几家了多找找了。

26届多多内推码
内推码 Aw0TNmXngV
内推链接 https://careers.pddglobalhr.com/campus/grad?t=Aw0TNmXngV

#拼多多面试# #服务端研发工程师# #内推# #内推26届校招# #牛客AI配图神器#
全部评论

相关推荐

08-21 11:12
门头沟学院 Java
研一结束。从七月初开始学习后端相关项目,经典苍穹外卖开局。把菜鸟编程Java基础过了一边开始投实习,第一次面试是用友后端开发,牛客上介绍了相关面试问题,由于刚开始学,被问得个天昏地暗,找不到东南西北,没后续面试。目前在一家小公司实习,当初面试就问了三四个八股问题,能回答一些,然后聊了一下公司做什么业务,休息时间等等,让我等通知,很神奇的过了,后知后觉,原来只是缺一个日常打杂,文档实习生。上个月中下旬开始入职,当天进来上午安装好代码环境,还时不时来问我进度怎么样,说下午还是第二天就安排任务,挺紧张和有挑战性的,毕竟学校内容和这个不一样。1. 上班这段时间修改已经上线的项目bug,天天都是改bug,有数量要求,可bug改到后面,前端、数据库表方面的bug已经改的差不多,涉及到后端逻辑方面bug难以下手,目测项目已经启动三四年了,300+接口,我能短时间看完嘛,男泵2. 写了项目操作手册,日常文档两三次这是目前一个月的任务,带教马上离职了,而且自己改bug也不好去麻烦他什么,自己也不怎么会项目,胆怯。应该是主管职务吧,隔三岔五说改bug任务做好了吗,达标了吗,我感觉没什么技术提升,最近这几天就没怎么改了,但没做这个bug任务感觉挺对不起实习这份工作,自己感觉没做事情胆怯羞愧心理,可给这点工资不够我日常基本花销,哎,我的心里很难适应别人的催促、和压力。自己也在努力适应工作,想到以后正式工作没这么轻松和任性了,努力适应吧。鼠鼠有话要说,虽然没怎么学到东西,可鼠鼠也在积极沟通主管、带教,能不能有项目我能接入,但目前公司有七八个上线项目,除开已经有的项目更新额外需求外,基本没新项目了,额。搁这鼠鼠没项目机会啊。鼠鼠在经历一次社招拷打简历,误打误撞面试天家,就面试了二十分钟,手撕算法不算,毕竟写不来。问了简历里面三次当出现异常该如何处理,你有什么思路(我觉得这种就问的很有水平,我很认可这种提问,但我不会)。为什么不问辛辛苦苦背的八股文、正常执行的情况。现在回过头来重新重新学习苍穹外卖、黑马点评。打算好好理解这两个单体项目,虽然现在大多都微服务了,理解里面原理和报错异常,重新敲一遍。希望赶在明年五月份前,能有一段满意的实习,12月份前工作技能和知识储备能面对面试提问。另外,我是不是该辞职了,但我感觉这里身边是上班族,挺有学习氛围的,回学校学着就偷懒了,上班至少很累,但作息挺规律的。但主管别来提改bug事情了啊,拯救鼠鼠啊,我不要心里承受内耗和压力啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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