虾皮搜推后端面经

主包在准备面试过程中学习了很多大家分享的面经,并且也超有用!!因此俺也分享一下虾皮的面试希望对大家有用~
timeline:8.28 一面 8.29 二面  9.01hr 面下午 oc
1. 一面
算法:删除链表中的重复元素II
1. 项目介绍
2. Linux系统中有个服务器从磁盘上读了一个数据文件,通过一个tcp连接发送给远端的另一台服务器,这个过程中这个数据文件经历了哪些过程。(非科班基础还是太差了直接被问蒙了)
3. 往会的地方引,引申到三次握手:三次握手是在同步什么消息?为什么是三次?
4. TCP连接对三次握手的上一次连接的垃圾数据是怎么识别出来的。(引申出数据包的序列号)
5. 对Redis有哪些了解(说了作为分布式锁的作用和作为缓存分担数据库压力两部分,不知道回答的怎么样)
6. Redis为什么快
7. 场景:有一个很大的数据集,取最大的top100(回答的小顶堆)
8. HashMap的put流程
9. HashMap为什么挂的是红黑树不是其他的平衡二叉树?
2. 二面
算法:和为k的子数组🌟🌟🌟!!没做好(一开始用的滑动窗口,面试官提示用前缀和)
没有问项目
1. CAS的原理
2. ConcurrentHashMap原理(从1.7讲到了1.8,有点紧张)
3. Redis跳表原理
4. Redis的ZSET为什么用跳表不用B+树(准备了但是没答好)
5. 深拷贝&浅拷贝
感觉总体来说没有很难,我其实就回答上了 7 成的样子,一面的第一个问题直接把我问懵了(非科班)😇😇
#后端#  #面经#  #虾皮#
全部评论

相关推荐

昨天 14:11
门头沟学院 Java
笔试只有三道编程题,没有选择填空,三道题给2小时做第一道,求区间不重复时的最大的资源利用率,存在多个三元素数组[1,3,2],[2,4,3],[3,5,4],其中[1,3,2]就表示区间[1,3)的资源利用为2,[2,4,3]就表示[2,4)的资源利用为3,那此时最大的资源利用率就是选[1,3)和[3,5)区间,区间不可以重复,最高利用率为(2+4)/(2+3+4)=0.6667ps:小题外话,这个题类似的有一个特殊情况,就是找不重复的最多课程数,就是给一些区间[1,3][2,4][3,5],其中[1,3]表示1点到3点的课,[2,4]表示2点到4点的课,此时要求在时间不冲突的情况下,尽可能多的选课,那这里就是找[1,3][3,5]这两个时间点的课,最多的课就是return 2;第二道,求一批任务执行的最小时间,输入格式如下:31 2 321 32 3第一个数字3表示有三个任务第二行表示每个任务的执行时间,比如第一个任务执行时间就是1,第二个任务就是2,第三个任务就是3第三行的2,表示有2个关联关系之后会给2个关联关系比如下面的1 3就表示做第3任务之前需要先做第1任务,2 3表示做第3任务之前要做第2任务。最后计算总执行时间,因为这里做第3任务前需要先做1和2,所以1和2可以一起做,做完就做第3任务,所以总执行时间就是max(1,2) + 3 = 2 + 3 = 5。如果出现1->2->3->1这种任务循环依赖的情况,就返回-1题目好杂交!约等于要先判断是否有环,之后再使用拓扑排序计算执行时间。第三道,求第一个没重复的字符的下标,比如"shenzhensicarrier"第一个没有出现重复的字符是'z'字符,对应下标就是4,如果是"shenshen"没有不重复的字符,就返回-1
站队站对牛:这家慎重一点
投递深圳市新凯来技术等公司10个岗位
点赞 评论 收藏
分享
多半凉了, 感觉问的挺细节的, 问零拷贝硬是要我说这个零拷贝的系统调用api是什么, UDP数据包拆分确实没理解透彻, 还有路由器那个问题没搞明白,还有time_wait怎么解决, 真没深入思考过这些啊1.  流式 ETL 管道(无磁盘 IO)是具体怎么做到的?2.  将同步的模式构成异步处理是具体怎么实现的?3.  在一个浏览器中输入一个 URL 之后它还会发生什么一些步骤?4.  Linux 系统如果它的 CPU 百分之百的话怎么去排查?5.  有没有什么办法可以找到它对应的堆栈?6.  MySQL 用什么结构作为索引?7.  知道 TCP 和 UDP 的一些特点嘛?比如它们的应用场景。8.  如果 UDP 第一次发 100 个包,第二次发 10K 的包,那对端会怎么收到这个数据呢?9.  UDP 包的最大传输单元是多少?10.  服务器什么时候会出现那种 TIME_WAIT 呢?11.  是客户端还是服务器会出现这种问题呢?12.  那怎么解决这个问题呢?比如说 TIME_WAIT 的连接特别多这种。13.  那 MSL 一般是多久呢?14.  知道零拷贝吗?15.  有哪些系统函数可以直接利用这个零拷贝技术呢?16.  TCP 的拥塞控制是怎么实现的?是如何做到的?17.  假设有 A、B 两个点,它们之间的 RTT 是 200 毫秒。如果直接从 A 到 B 传输一个小文件,或者有一个中间的 C 节点,先从 A 到 C(RTT 100 毫秒),再从 C 到 B(RTT 100 毫秒)。这两种方式哪种会更快呢?18.  如何保证缓存跟数据库的一致性?一般比如说你就是用来然后怎么这个数的。19.  算法题:最小覆盖子串(LeetCode 76)。20.  (反问环节)有没有要问的?
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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