拼多多服务端一面4.18 (一面已过)

拼多多一般多久出结果呢?一面感觉面的依托40分钟面完了。。感觉有点小寄

整理一下一面的问题吧也学不进去。

(1)门面模式,策略模式、模板方法 (因为项目写了!所以这么问的)
门面:为复杂多子系统提供统一简洁接口,隐藏内部繁琐流程,降低调用复杂度,让外部只需一个入口就能使用整套功能。
策略: 定义一系列可互换的算法策略,封装各自逻辑,运行时灵活切换算法,不修改原有业务代码,符合开闭原则。
模板方法模式定义算法固定骨架流程,将步骤延迟到子类实现,不改变整体执行顺序,子类只重写具体细节,复用算法结构。
(2)策略模式和工厂模式区别 (这个问题一直追问我!! 我只知道特别浅浅的东西)!!! 
工厂模式负责造对象,只关心怎么创建实例;策略模式负责用算法,运行时切换不同业务逻辑,工厂管创建,策略管行为。
然后 追问 工厂模式不能做不同策略对象吗? 工厂造出策略对象,再交给策略模式去调度使用,二者分工完全不一样 然后又追问他们使用场景 多个同类对象,创建逻辑复杂多变,不想让业务代码直接 new 对象,统一封装创建,解耦对象生成与使用。 同一业务有多种算法 / 规则切换,比如支付方式、排序规则、优惠计算,运行时灵活替换业务逻辑。
又追问 相同点是什么同时他们的区别是什么呢? 回答封装变化、都用到了多态,都降低了耦合、都符合开闭原则。
不同点 一个创建对象一个选择对象怎么去干活的。
第一个项目项目学到了说明一下 就随便说了一下简历上的东西 然后没有追问
下面问rpc框架的东西了 因为简历有rpc。  自研 RPC 让我掌握TCP 粘包解决、动态代理、服务注册发现、负载均衡、SPI 扩展

(3) 问怎么处理粘包!! 定消息头 + 长度域的私有协议,先读头获取长度,再按长度读体。
(4) 为什么会有粘包的问题: TCP 是面向字节流的协议,没有消息边界,发送方批量发、接收方一次性读,就会出现多条数据粘在一起。
(5) 问我tcp为什么是流式的?? 我直接蒙蔽了。。。我咋知道!!! 
    TCP 是流式的,因为它的设计目标是提供一条可靠、有序、连续的字节管道,而不是独立数据包的传输服务。
(6) 问我项目设计的 协议消息的格式是什么样子的 让我写道屏幕上 因为确实背了这里写出来了
(7)问我 message length代表什么意思 message length 就是消息体的字节长度,告诉接收端要读多少字节才是一条完整消息,是解决 TCP 粘包半包的核心字段。
(8)因为我使用的是recordParser去进行消息的处理然后面试官问我 没有被截取的部分怎么处理呢? 看了recordParser源码所以答出来了 没读完、不完整的字节,我会自动暂存在 Vert.x RecordParser 内部缓冲区里,不丢弃、不处理,等下一次数据到来继续拼接,直到凑够一整帧才交付
(9)jdk动态代理是什么 !! 
(10)jdk动态代理底层是什么 运行时动态生成接口代理类字节码 → 加载进 JVM → 全部方法统一走 invoke () 反射调用 这里好像我当时说的怎么实现动态代理了因为我不知道底层所以当没听见。。。
(11)红黑树和跳表的应用区别 redis?
红黑树 范围查询慢 HashMap  跳表 插入 / 删除只改指针 范围查询极快 
(12)为什么空间复杂度都是O(N)
(13)除了上面还有什么区别吗? 我又重复了一遍上面的回答。。。因为确实不知道了。。
实现难度不同
红黑树:极难,要处理旋转、变色、平衡,代码复杂易错。
跳表:简单,只用随机层数 + 指针调整,代码短、易维护、易扩展。
插入 / 删除稳定性不同
红黑树:插入删除可能触发连锁旋转 / 变色,最坏会有O (logN) 次调整,高并发下有抖动。
跳表:插入删除只修改前后指针,局部调整,无连锁反应,高并发更稳定。
范围查询效率不同
红黑树:范围查询要中序遍历,跳转多、缓存不友好,速度慢。
跳表:直接在底层连续链表遍历,缓存命中率高,范围查询天生更快。
并发场景支持不同
红黑树:修改时影响路径多,加锁粒度大,并发性能差。
跳表:操作局部化,加锁粒度小,更容易实现无锁 / 细粒度并发。
缓存友好度不同
红黑树:节点分散,CPU 缓存不友好。
跳表:底层是连续链表,缓存命中率更高。
(14) 又问他们读取的区别是什么呢?读取时会怎么样
红黑树读取(查找)
从根节点开始,不断左右跳转,走一条从根到叶子的路径
节点在内存中不连续,CPU 缓存命中率低
每次比较都可能缓存未命中,读取速度受影响
范围查询需要中序遍历,跳转更多,更慢
2. 跳表读取(查找)
从最高层索引往下跳,快速缩小范围,最后落到底层有序链表
底层是连续链表,内存局部性好
CPU 缓存更友好,连续读取更快
范围查询直接遍历底层链表,几乎无跳转,极快
 (15) 最后除了两道算法题 
1、是leetcode 面试150题里面的一个
2、实现一个线程安全类 然后又add和remove操作!! 
都写出来!!

42分钟差不多就面完了

拼多多内推链接:https://careers.pddglobalhr.com/campus/intern?t=vSypT8yAuQ 内推码:vSypT8yAuQ
全部评论

相关推荐

拼多多暑期octimeline:拼多多服务端研发3.15 笔试3.21 一面4.1   二面挂4.10 一面4.17 HR面4.23 oc字节跳动在官网上投没反应,但是之前忽然看到个内推码,投了以后是日常实习,时间不合适。但是简历进了人才库,都是hr微信找我来面试的,由此开始了奇妙之旅。字节内部运转的很高效,佩服。3.16 一面3.20 二面挂4.15 一面4.16 二面4.20 HR面  HR面过了,但是承认有个拼多多的hr面也过了,字节表示需要明确选字节才走hc审批。部门很好,流程很快,但是权衡之下还是拒了。京东测开3.6   一面3.9   二面挂3.25 一面挂(金融支付的测开面试官好凶,一问三不知,快要自闭了)美团(美团大BOSS~~)3.14 笔试3.26 小象超市一面挂3.30 DAG引擎一面挂4.9   金融业务一面挂4.17 本地商业中台一面过然而并没有什么用,没回人才库,也没二面。感谢美团认可我,让我过一面。三次一面挂,一次一面过,屡败屡战,屡战屡败。美团提高了我的认知,磨炼了我的意志,美团万岁!OPPO3.31 一面挂oppo的一面挂极大地刺激到了我,oppo不考笔试,只考项目,一直以为是大厂招聘要求高,原来是我太菜,我开始反思自己的不足之处,疯狂用ai升级项目,自救。感恩OPPO,点醒了沉睡的人蚂蚁集团3.19 ai coding3.31 一面挂  这是一场kpi面,面试官没有开摄像头。3.31下午的OPPO,3.31晚上的蚂蚁kpi,让我彻底意识到自己的菜。虽然是一场kpi面,但是我忍了一个小时之后,等到反问环节,向面试官求助,请求指出我的问题在哪里。问题很多,面试官一针见血地指出了一个问题。我决定升级一下项目,而不是停留在学习项目、demo项目。但是第二天4.1上午10:00就是拼多多二面,我还没重构多少,就带着绝望的心情面拼多多。面到15min,我之前的玩具项目就被面试官问穿了,心态崩了,直接请求面试官给我的项目一点建议,指出我的问题,给点改进的方向。面试官很生气,说面试还没有结束,这种话本不应该现在说。但是既然说了,他还是指出了我的问题,给了几条建议、指点。最后还指出我不仅要提高项目,还要练习语言表达能力。感恩拼多多,彻底被多多征服了携程集团3.13  笔试4道ac 从此进入人才库阿里巴巴一开始不怎么会agent,没敢投。4.21 测评4天后才笔试,下周一才面AI SRE,面着玩吧。华为软开4.8   笔试4.10 心理测评挂  刚刚燃起的希望又幻灭了,“点击即送”的都没有把握住,又是一个小低谷。华为,我对你有了新的认识。招银网络4.15 测评4.23 一面 今天刚面完,不知道结果同花顺4.15笔试、测评4.23喜提感谢信  同花顺笔试还挺有意思海康威视4.16笔试、测评  后续没反应简历挂:快手、哔哩哔哩、米哈游、美的集团、小米集团、滴滴、SHEIN总体来讲3.31-4.1痛苦达到了峰值,不在低谷中爆发,就在低谷中灭亡。求职好难,还过的去的bg让我在白板状态下也能获得面试机会,打了一年leetcode周赛让我对笔试和手撕无所畏惧,获得了有笔试门槛的公司的机会(拼多多、美团)。但是机会来了,面对机会,要想办法把握住。祝牛友们求职顺利,我这种水平一般的都能找到暑期,现在没找到的、还在煎熬着的牛友们也一定能行,不要放弃
江海寄余生Y:pdd挂了还可以捞嘛
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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