当前位置 博文首页 > Ocean曈的博客:记虾皮shopee两轮面试题

    Ocean曈的博客:记虾皮shopee两轮面试题

    作者:[db:作者] 时间:2021-06-21 12:39

    最近面试了很多公司,各种大小公司都面了一遍。BAT除了阿里都去面了,有些惜败,有些成功拿到了offer。不过这些公司,面试大同小异。不过有一家公司,出题的思路比较特别新奇,就是虾皮。so,记录一下分享出来。

    话不多说,先上题:

    一面:
    1.new object 的整个流程是怎么样的?
    2.聊聊垃圾回收器?(其实像这种题,如果自己对垃圾回收器熟悉的话,直接就聊,非常加分。但是其实go语言的垃圾回收跟jvm 非常不一样,不属于jvm十多种垃圾回收器中的任何一种,之后有时间可以给大家分享一下go的垃圾回收器)
    3.线程切换怎么样一个流程?
    4.线程是如何执行一个方法的?
    5.在本地起一个客户端,然后向本地的服务发起tcp链接,链接请求包经过了网络的那些层?
    6.(接上一个问题)有没有经过物理层?
    7.Tcp 是如何保证可靠链接的?
    8.Tcp 跟udp 的区别是什么?
    9.聊一下mysql 的 事务隔离级别?
    10.事务隔离是如何实现的?
    11.一个事务
    (1)Txa: update xxx where a = 1; update xxx where a = 3;
    (2)Txb: update xxx where a =2;
    问 事务 txa 执行的时候,事务txb 能不能执行成功?
    12.mvcc 是如何实现的?
    13.Mysql 主从如何实现的,会有什么问题?
    14.这些问题,有什么解决方案?
    15.聊一聊 zab 一致性算法选举过程
    16.聊聊 写入一条数据 到遵循zab 一致性协议的算法的系统里面的流程
    17.分布式事务是如何实现的?
    18.了解linux 的僵尸进程么?
    19.算法题:
    小明,邀请K个朋友来家里,妈妈准备了n个糖果包,并且给包编好了顺序,每个糖果包里面的糖果数量不同(n>k),因为糖果包比来的朋友多,现在让小明分配按照糖果包的顺序,依次分成k+1 份,让k个朋友先拿,问怎么样的分配方式,让小明最后拿得到最多?

    二面:
    1.聊聊你最近的一个最熟悉的项目
    2.一个域名多个ip 的配置,客户端是如何选择用哪一个ip的?
    3.Ip绑定的 nginx 如果挂了,客户端会这么办?你作为后台应该怎么保证你的服务持续进行?
    4.Nginx 原理你有了解么?
    5.Spring gateway 的线程数量应该怎么设置?
    6.Spring gateway 的线程模型是怎么样的?
    7.Epoll 你了解么?
    8.Api 层调 provider 层,其中一个provider 挂了该怎么办?
    9.Mysql 一张两亿的分表,现在扩张到了两千亿,如何进行分表?如何进行数据无感迁移?

    总结

    两轮面试官都其实都非常nice。但是面试时长都超过了 一个半小时。跟面试官斗智斗勇,大家都知道非常累的。特别是第二位面试官,在我不熟悉的领域里面追问到了很细节的地方,然后因为不熟,导致逻辑不能自洽,自己还需好好努力啊。不过不熟就承认,讨论技术方案不靠谱,就直接平躺。不过幸好,面试最终还是通过了。

    然后总结一下,虾皮面试题目来说,就是第一注重基础,特别爱问网络相关的知识。tcp,nginx等等,我想大概率是虾皮的市场面向东南亚,其基础设施不太好,所以弱网等问题比较多。

    再然后算法出的也算是比较难,跟面试官讨论了好几种方案,第一种直接就是回溯法,想起来比较简单,不过时间复杂度高,然后自己又用了贪心,然后面试官指出了不能实现。最后再面试官的提示下,二分搜索+枚举的方法,然后又现场编码。不过因为这种算法,波动比较大,其实到现在我还觉得,其时间复杂度不见得就低。

    最后,总结来说面试虾皮,因为我是java语言的,但是虾皮使用的go做技术开发。所以面试中他们对框架什么的不是很重视,非常重视的就是基础,非常重视的就是基础,非常重视的就是基础!!!重要的事说三遍,以及编程思想。

    下一篇:没有了