面完一个小时官网查看流程中止,阿里这个效率,只能说nb了
1.上来面试官先介绍了一下他的部门,搜索相关
2.自我介绍(主要就说了说经历,研究生的研究方向这些,没说到简历上的项目)
3.tcp和udp最大的区别(tcp的三大特点,只说了面向连接和可靠,还有一个字节流忘了,我的锅)
4.tcp创建连接的过程(这里我答的有点不对味,我理解成具体的过程,所以说的是创建socket、bind、listen、accept这一套,我说完面试官说其实要我说3次握手的过程,后面我又补充了,但整体给人的印象不太好)
5.tcp为何要3次握手(保证双方都有接发能力,balabala)
6.要是三次握手第三次的ack丢了怎么办(emmmm,看网上都说服务端会等3、6、15秒重发,客户端则会发送数据然后收到对面传来的rst报文。我这里其实答的很模糊,因为之前没有看过相关回答,所以我就自己推断了一下说如果客户端马上发送数据的话会把这个ack给补上,所以理论上应该没影响,如果客户端没有发数据的话服务端会认为第二次握手丢失然后重发第二次握手。ps:有些小伙伴做了实验好像真的没影响,这里给我整不会了,希望大神能帮忙解答一下)
7.说一说从浏览器输入网址到看见网页内容之间发生了什么(http请求,DNS协议,tcp报文段,ip数据报,路由,默认网关,arp,以太网帧,http相应。基本这些名词和大致含义都过了一遍,具体答的怎么样自己也把握不准,这道题答得也是最久的)
上面是纯电话面,下面就给了我一个网址,让我在上面的在线编辑器上写代码
8.给你一个不知长度的链表,现在要你从其中随机选出一个节点(要保证每个节点被选中的概率相等)要如何做,要求空间复杂度为1,而且最多只能进行一次遍历
(最开始的时候理解错了,理解成要怎么找到某个节点,这里感觉还是面试经验不足,原题目就一句话,而且写的比较模糊,这里我也没问就直接写,写完自己都觉得不对劲。后面被面试官纠正后开始重新写,卡了有5分钟以上吧没想出来,后面直接说不会。关于这道题的解法感兴趣的小伙伴可以直接百度,leetcode原题)
9.两个链表判断香蕉,呸,相交(说这个我可不困了,leetcode高频题,之前刷过好几次,大概几分钟就写完了吧,面试官问我是不是之前做过,我说嗯,之前刷过两次,面试官说既然刷过那下一题)
10.以下代码有啥问题:
uint64_t fun(uint32_t a) {
static const uint32_t b = 1 << 12;
return a * b;
}
static const uint32_t b = 1 << 12;
return a * b;
}
(看了有2分钟吧没发现问题,最后直接讲没发现,面试官好像挺失望的,流程到这里就结束了)
然后一个小时上去看就流程终止了,第一次面互联网,心塞。。。。。
全部评论
(4) 回帖