虾皮新加坡后端面经

一面

大部分是八股,算法题挺有趣的。

  1. tcp握手挥手,为什么是三次
  2. time_wait状态,为什么要有?坏处?
  3. 数据库索引有什么?各种的优缺点?
  4. (还有很多八股题忘了)
  5. 算法题:两数之和,和leetcode.1不同的是会有重复数字,而且答案不止一对,需要输出结果对数(不包括重复),两种解法(不难)
  6. 如果5中的数组是放在TB级别的文件里面的,但是你只有2GB内存,怎么办?两种方法?(类似5中的思路)
    两个工作日后月了二面。

二面

因为我做过MIT 6.S081,面试官挺感兴趣的,所以基本都是问操作系统的实现。

  1. 进程与线程的区别?(到实现级别,讲到了struct里面的一些字段区别)
  2. 能否在一个进程里面修改另一个进程的内存?(涉及到页表的翻译原理,讲到了硬件级别)
  3. 分页和分段的区别。(我这里不是很熟悉)
  4. 内存分配算法?怎么解决碎片问题?(各种空闲链表,伙伴系统)
  5. 有优先级的进程调度算法?如何实现?(彩票调度,可以用二叉搜索树或者hash)
  6. 如何实现为进程实现一个timer?如果是多个timer怎么办?(进程的struct存timer相关字段,比如函数指针和记时器,定时陷入内核;多个timer需要用到优先级队列,讲到了如何修改非堆头的元素)。
  7. 进程的基本状态,调度器在遇到各种状态时候怎么办?

许愿一个HR面


HR面有啦,开心

#Shopee面经##面经##Shopee#
全部评论
你好我问下这个面试邮件里面没有确认参加的链接,所以是要直接回复邮件确认参加么
点赞 回复 分享
发布于 2021-09-08 18:09
老哥 想问问一面二面隔了几天
点赞 回复 分享
发布于 2021-09-08 22:22
请问下老哥面的是什么部门
点赞 回复 分享
发布于 2021-09-08 23:07
老哥,1面中的第6题怎么答哈
点赞 回复 分享
发布于 2021-09-09 23:40
我上周四面完二面,一直没消息
点赞 回复 分享
发布于 2021-09-10 16:03
收到hr面了吗
点赞 回复 分享
发布于 2021-09-10 18:02
二面后多久收到HR面的?我感觉没了
点赞 回复 分享
发布于 2021-09-14 20:35
大佬,请问下hr面之后池子深吗
点赞 回复 分享
发布于 2021-10-01 16:10

相关推荐

2024-12-11 21:31
门头沟学院 C++
今天完成了三道动规的子序列题,有点难度。最长递增子序列://dp[i]:下标为i时的最长递增子序列的长度        //递推公式: //if(nums[i] > nums[j]) dp[i] = max(dp[j] + 1, dp[i]);        //初始化:全初始化为1        //遍历顺序,两层for循环,外层i,内层j(j         if(nums.size() == 0) return 0;        vector dp(nums.size(), 1);        int result = 1;        for(int i = 1; i         {            for(int j = 0; j             { if(nums[i] > nums[j]){                    dp[i] = max(dp[j] + 1, dp[i]);                }            }            result = max(result, dp[i]);        }        return result;//不一定是以最后一个元素为结尾时是最长子序列 最长连续递增子序列:简单两个数组间的最长重复数组://dp[i][j]:以i-1为结尾的A和以j-1为结尾的B的最长重复子数组的长度        //注意: “以下标i - 1为结尾的A” 标明一定是 以A[i-1]为结尾的字符串         //递推公式:        //if(nums[i] == nums[j]) dp[i][j] = dp[i-1][j-1] + 1;        //初始化,全初始化为0,因为dp[i][0],dp[0][j]其实没有意义,而其他的则会被覆盖        //遍历顺序:两层for循环        if(nums1.size() == 0 || nums2.size() == 0) return 0;        vector> dp(nums1.size() + 1, vector(nums2.size() + 1, 0));        int result = 0;        for(int i = 1; i         {            for(int j = 1; j             {                if(nums1[i-1] == nums2[j-1])//是i-1,j-1时的元素相等                {                    dp[i][j] = dp[i-1][j-1] + 1;                }                result = max(dp[i][j], result);//持续记录最大值            }        }        return result;这几天终于把Reactor框架学完了!
点赞 评论 收藏
分享
2024-12-02 20:32
已编辑
南昌航空大学 Java
我曾经一直认为,高效率工作或者学习,是非常有必要的,这也是我喜欢写程序的原因,因为程序的效率比人类高,一个好用的程序或许能省很多时间。但是,现在,我改变了我的看法。作为一个实习生,我把分配到的活都在规定时间内干完,然后六点准时下班,然而在最近得知了自己不被领导看好的消息。我们这一共四个实习生,我总是每次准点打卡下班,而其他实习生都比我晚。或许是我分配的活比他们少,或许是其他原因,但我都保证了我的需求在规定时间内完成,甚至提前完成。我觉得至少在任务上,我是过关的。然而今天和mt聊了,他说ld不看好我,因为我每次六点准时走,从不加班(而ld也说实习生加班不做要求),然而实际情况并非如此,像mt或者其他正式员工的晋升,和工时离不开关系,在大家做的需求难度差不多的情况下,工时高就成为了晋升的标准。而我们实习生转正,工时或许成为了潜在的加分项。并且上个月,工时最高的实习生被评为了优秀实习生。我并不想说其他实习生怎么怎么样,我和他们一起吃饭,也玩的挺好。但我很痛恨这种潜在的加班内卷,毫无意义的在工位上消耗多余的时间,能让公司发展的更好吗?晋升和工时正相关,能帮公司筛选出优秀的员工吗?也许真的有人工作多需要通过加班,在规定的时间完成需求,但以现在的风气来看,这种并非多数。我曾经以为技术是晋升的标准,努力学习提升技术就能获得晋升的机会,但我现在不这么认为了。我知道公司上级只是想通过工时这种数据,让老板知道自己花的工资有价值,但这样只会让我更不热爱工作。发表一下自己的感想罢了,我不奢望能改变什么,因为我也成为了加班到八点的“优秀员工”。
点赞 评论 收藏
分享
评论
4
54
分享

创作者周榜

更多
牛客网
牛客企业服务