秋招内推投递的,半个多月后收到一面邮件。
一面电面:
1.自我介绍
2.hashmap了解吗?
从原理、容量、loadFactor到1.8红黑树优化,resize优化讲了一通。
3.红黑树最差复杂度多少
logn
4.TCP了解吗
基于不可靠的ip协议,实现可靠的传输。然后就没了,握手挥手也没讲(等着追问)。
面试官:有什么要问的吗?
我:TCP我只讲了一点点,可以继续聊。
面试官:不用了
我:
1)职位内容(服务端的)
2)什么语言(golang)
3)对我的评价
过了两天发了二面邮件。然后等到的二面要求去珠海现场面,而且问能不能进行不超过3个月的实习。
屁颠屁颠地坐城轨到珠海,然后坐了40分钟的公交到金山软件园附近。
海景房真的不是吹的,就坐落在海边,风景很好,就是周围没什么人(提前3个小时到了,想要找个地方休息一下,发现除了金山还是金山)。附近有中山大学和一个中山大学附属中学。
有好几栋研发中心(三层),还有正在修建的二期工程。
二面:
1.自我介绍
2.聊项目
3.简历上的分布式项目,如何保证数据一致性。
我说数据库不是我做的,是公司维护部有人做,说了一致性和可用性的妥协。
4.(kafka)的零拷贝了解吗(简历上没写kafka)
我:大致划了一下图,说是linux内核提供的功能。
面试官:零拷贝中的文件的内核中的缓冲区是如何创建的?
表示不知道,面试官说是bytebuffer对象,虚拟机之外的内存。
5.
面试官:项目有用到https吗?
我:没有用到但是了解。
面试官:讲一下流程
我:划了一下流程图,因为紧张有一点讲错的地方。面试官看我应该是知道的,就直接告诉我答案了
面试官:项目CSRF攻击如何防御的,我说spring security自带,然后问原理。
讲了token,但是好像不认可这个答案。最后说可以用时间戳和refer字段(表示refer了解,时间戳不知道)
面试官:协程了解吗。
我说只知道一点点,然后他肯定了我的回答,并且深入讲解了一下下。
6.
面试官:面向对象的理解
我:继承封装多态。多态描述不出来,面试官手把手教。。。
7.
2M内存,400W Int排序,讲出具体的步骤及内存分配。
算大小算半天,直接告诉我400W int 是4M。。。然后才继续答
8.
1 2 ... 26 27 分别代表 a b ... aa ab,写出数字到字母的转换(伪代码)
我:现场紧张的不行,脑袋完全放空。面试官疯狂提示,最后直接说答案。
我说上一次面试也是因为紧张导致很简单的算法题没写出来,还说了是什么题。
面试官就问我那道题怎么写,并且说另一种解法。
然后给了一道和那道很像的:二叉树某个节点有两个父节点,找到并且删除多余的边。
我脑袋放空,瞎说一通。面试官提示和之前的题有点像才做出来。
9.
手写一下快排伪代码吧。
由于很少手写代码,所以写一半发现格式完全乱了,说能不能口述一下,允许了。
然后描述的是挖坑法,面试官好像没见过这种方法(他写的是双指针法),我们就挖坑法的正确性讨论了10分钟。。。
10.
最后问了在校成绩(很菜)
为什么要来珠海(为什么离开之前实习的单位)
然后叫了另一个人过来,说必须先实习不超过3个月看看代码能力,再决定发不发offer。我问是不是所有都需要,他说特别优秀的直接发offer。然后约了hr面。
总结:
java的基本没问到,面试官评价我知识面很广(不知道是不是安慰我,嘿嘿),但是算法细节少拎不清楚(其实平时对着idea写没什么问题,现场写脑子里就是空的)。
面试官人真的很好啊,之前的面试就是很随意的,不管你答对答错,这位小哥会提示你,算是我遇到的最好的一位面试官了。
金山的工作环境很nice而且包三餐,员工宿舍很便宜,遇见的员工都很尊重人。