拼多多基础电商后端面经

时间点如下:9.20投递 -> 9.27一面

一点思考

    拼多多问的比较难些,需要懂原理了。同时也考一些场景题,例如如何维护用户的登录状态比较节省空间,需要实际碰到过类似场景才行。一面面试官比较年轻,大部分都答出来了,但是在做算法时有点刁钻,一定要leetcode上的最佳答案,加上自己没做过这道题,结果给挂了。真是衰。。

    今年找工作十分不易,市场候选人很多,能过就是钱给不到位!希望这篇面经能帮到大家~

pdd基础电商一面(9.27 15:00)

  1. 用redis实现每个用户的登陆状态,bitmap

    1mb,可以存储800w个用户的状态。getBit/setBit,https://segmentfault.com/a/1190000040177140
    就是某个偏移,能设置0/1,不能设置其他的。一定是二值,省空间。
    bitmap不是基本类型,底层其实借助的就是字符串来实现的(SDS),由于最大长度为512MB,所以最大偏移为2^32 - 1

  2. CAS怎么实现的,有什么优点和缺点?

    空轮询,浪费CPU,但是不用切换上下文,不是系统调用,成本很低。适用于并发比较低的场景。ABA问题。

  3. 两个用户修改数据,怎么防止另一个用户负载上一个用户的修改?
    乐观锁,

加上版本号,或者把原来的状态放到条件里。

  1. mysql查询如何加写锁?

for update/lock in share mode

  1. 如何实现多个线程修改同一个变量,互不影响?thread local可能有什么问题?

thread local

  1. 线程池有哪些参数?

    核心线程数、最大线程数、最大线程数过期时间、阻塞队列、线程工厂、拒绝策略。

  2. kafka是pull还是push,pull有什么问题?如何解决?

    pull可能造成服务端压力过大,有很多空轮询,但是有个参数可以设置,类似长轮询。还有就是轮询时间太大的话,延迟会比较大。push可能无法知道下游的消费情况,造成过载,但是比较实时。

  1. TMF是怎么实现的,有什么区别?

  2. 新生代为什么要有两个survivor,一个不行吗?

牺牲空间换时间,实现简单。新生代中最耗时的是复制。。。

用空间换时间,你可以模拟新生代回收两次的场景。假设现在只有一个s区,第一次,e满了之后,你把活得对象放到s,如果此时只有一个s区,那么当第二次e去满了之后,就没有s区可用了,为了使第二次GC能够进行所以在只有一个s取得情况下你只能,把s区中的或对象复制一遍放到e区,所以如果有一个s区的话,一次新生代GC要复制两次活对象。而在有两个的情况下,这个问题就可以避免了,e区满了之后进行第一次GC,把活的对象放入s0,此时s1区是没被使用的,当第二次GC的时候再把e区中活的对象和s0中活的对象一同放进s1,你有没有发现在一次GC中,两个s区会比一个s区少复制一次

  1. 双亲委托模型如何实现?为什么要有双亲委托模型?如何打破双亲委托模型?

覆盖loadClass方法。一种是设置线程类加载器。而不是用当前类所使用的类加载器。

  1. 为什么要有SPI,Dubbo SPI如何实现?

    spi其实是java自带的扩展点实现思路,支持框架定义好api,然后在框架中加载业务实现类。如果实现类不在类路径中,可以通过线程类加载器加载到该类。
    dubbo spi比java spi灵活。
    dubbo spi支持按需加载实现类,而java spi会一次性加载所有实现累
    dubbo spi支持注入其他spi,也就是依赖注入,更加灵活。而java spi不支持。
    dubbo spi支持spring注入。而java spi不支持。

  2. aop是怎么实现的,CGLIB和JDK proxy有什么区别?

  3. hashTable和ConcurrentHashMap有什么区别?

  4. 编程:判断一个数字,是不是回文数,不断优化

    这题其实是leetcode的基础题,但是面试官不断的要求优化,要的是leetcode上的标准答案,真的是折磨死。

#社招##校招##拼多多##阿里巴巴##腾讯#
全部评论
xd挂了的还会收到反馈问卷吗?
2
送花
回复
分享
发布于 2022-10-20 05:49 上海
感谢楼主分享的面试经验,赞
1
送花
回复
分享
发布于 2022-10-14 22:45 陕西
秋招专场
校招火热招聘中
官网直投
是官网状态更新成挂了吗😅😅
1
送花
回复
分享
发布于 2022-10-15 11:32 陕西
大佬官网显示流程终止了?应该不至于吧
点赞
送花
回复
分享
发布于 2022-10-14 23:06 上海

相关推荐

虽然面的不多,但陆陆续续也有好几次面试了,可能运气好,面试官人都很不错,就算把我挂了,面试官全程也是笑嘻嘻的,虽然目前一个offer都没有,但也总结一下,。一共仅有的几次顺序大概是腾讯的测开-美团的前端(开发测开都挂了,被前端捞的,问的也都是后端开发)-淘天的两轮技术面 -拼多多三轮面试面试题顺序不记得了,印象最深的大概有以下几个:Java基础:1.基本集合类型,后来细问了arraylist,linedlist的区别2.concurrenthashmap如何实现3索引是什么,有哪些,采用b+树的原因,磁盘采用什么来存储数据?4索引建立的注意点5数据库如何优化6分库分表,这个不知道5.redis的数据一致性6.redis的分库分表?(不知道,不记得具体问的啥,因为不会)7.nginx的默认负载均衡策略有哪些8.tcp4次挥手最长响应时间--------_又想起来了别的9.OSI七层模型10.Linuxvi编辑器,:q!,number,jstack11.MySQL的事务隔离级别12.bean的加载流程13.springboot底层如何实现,这里考了一个什么没听懂14.springboot优势15.为啥用redis,有什么好处(答我只会这个16.数据库引擎17.为什么要springcache18.写几个sql的,用到的有innerjoin和groupby,count啥的不难,但是当时脑抽没写出来(拼多多好多手撕,考过双指针,单例,二分查找,我的考的都不难,但是会问你优化时间复杂度啥的19.智力题,称重,几个球找轻的那个20.场景题,有token如何保证用户不能同时两个登录,回答每次登录token刷新,之前的用户就不能成功发请求,不知道为什么说不行,还问了session和cookie为什么不用,还问了cookie能不能保存token,应该肯定可以吧,不知道还要回答什么,token本身不是保存在浏览器本地内存里吗,保存到cookie不是反而体现不了它的优势了吗21.场景题,如何保证库存并发安全,乐观锁加版本号,进一步就说可以在redis里lua脚本实现,问还要具体一点,就不会说了20.场景题如何测试新闻评论功能,当时一点不会,现在觉得可以这
查看20道真题和解析
点赞 评论 收藏
转发
投票
广州凡岛 创意策划 (15+5)x12 本科985
点赞 评论 收藏
转发
16 83 评论
分享
牛客网
牛客企业服务