头条面经分析

it2022-05-05  100

7月14日(一面、二面)

一面45min:

首先做了自我介绍,然后简单回答了面试官对于项目中的一些疑问,没有太多的深入。

一面面试官比较和蔼,问的问题比较专业,比较基础,简单做了一下回忆:

virtual函数能不能用在构造函数中,为什么?

我的回答:一般构造函数不能virtual,析构函数才用virtual。面试官说,为啥,我说我平时都是这么用的,不确定啥原因。面试官也挺好,说没关系。

点评: 这一道题目是一道虚函数动态绑定的常见考题。

 

你遇到过内存泄漏问题吗?

我的回答 :没有遇到过,但是对同一个区域进行两次del,应该会造成内存泄漏,其他不清楚。面试官说,好的。

点评: 考察实际项目中的内存泄露问题,难度偏大。

 

你知道系统死锁是 怎么造成的吗?

我的回答:操作系统我没有学过,但是 我是做网络的,我们网络中也有死锁以及防范的方法,于是将计算机网络中的各种锁成因,以及避免方法进行了说明,并在最后说,我觉得所有的死锁问题根源在于资源的抢占,并且,多个进程间形成了循环依赖,即得不到被其他进程占用的资源,也不释放自己已经占据的资源。面试官比较满意。

点评:  作者的回答有点类似哲学家吃饭说的东西,死锁在面试中也是常考题。

 

说说hash冲突的解决方法:

我的回答:一般由两种常用方法,开放地址法和链地址法,结果自己蠢,把两个方法的实现方式将反了,不过面试官大体上听懂了我的意思,还比较满意。

点评: Hash冲突的方法是一个比较简单的问题,在面试中也常常被问到。

 

 

你一般用过C++的那些高级属性

用过容器来的,数组,队列,栈,优先级队列,hash类的map,set。 面试官说还有别的吗?我一时想不起来,他说 用过智能指针吗,我说没有,了解吗?我说不了解,用过auto吗?我说用过,一般用auto做函数或者变量的定义,然后大致说了一下我平时使用的场景。感觉自己有点弱。

点评:  智能指针属于C++问题中比较难的一类问题,一般面试中也会被问到。

 

了解进程间的通信吗?

我说,进程间的通信包括管道,命名管道,消息队列,共享内存等。一般管道比较慢,消息队列做同步,共享内存快。

点评:  进程间通讯属于面试必问知识

 

http提交表单的方法有啥?

我说,不知道,估计面试官是想知道post,get哪些方法吧,早都不记得了。

点评: http协议基础是考察的频率也比较高。

 

C++函数只声明,不定义会在哪一步报错?

我说,我不知道,一般我没有这样写过。

 

点评: 基本回答出在调用过程中会错误即可。

 

最后是一道编程题,链表的题目,很简单,但是还是有个小错误,在面试官的诱导中,自己发现了。

******************************************************************************************************************

******************************************************************************************************************

 

总结: 这一个一面的题目是偏简单的,基本能全部答出来问题不大。

 

 

5分钟后,hr打电话,说一面通过,10min后二面可以吗,我说可以。

二面(50min)

二面不用自我介绍了,直接上来就说,我在看你的博客,我当时惊呆了,面试官在我的博客上寻找着知识点,整个氛围比较轻松,他说你刷了很多题目,我说,是的,然后看了leetcode600多道题目的刷题量。

挑了一个自己觉得做的最好的项目介绍,我就挑了一个介绍一下。回答了面试官的疑问。

问了我TCP是怎么保证可靠性的,udp呢?

我的回答:tcp本身通过ack确认机制来保证确认信息收到了,并通过重传机制对丢失信息进行重传,也就是说,应用端将数据交给TCP,自己啥都不用管了,他一定能传到,所以称之为可靠性,udp没有这样的机制,直接 最大化传输,但是,并不意味着他就不可靠,只是可靠性的保证交给了应用端去做。面试官挺满意。

 

点评: TCP的可靠性以及和UDP的区别是面试中必考内容。属于一定要答出来的知识点。

TCP 可靠传输

1、确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传。

2、数据校验

3、数据合理分片和排序:

 

 

我在你的博客上看到你负责远程服务器集群维护,能具体描述一下吗?

我就把自己实验室集群远程访问那套东西做了介绍,面试官问我他们如何通信的,我把ssh的通信过程搬过来。

c++和python的区别? 我说,动态静态的区别,C++要经过编译器,python不用,直接解释器就可以搞定了运行了。回答的太简单了。

5层TCPIP中,每一层都包含啥协议?

物理层:802,链路层,arp(这块应该有争议),ip层:IP协议,传输层:tcp udp  应用层,http,ftp,snmp邮件地址解析协议。回答的太少了。

点评 : 计算机网络的知识属于必考内容。

 

编程: 动态规划,完全背包,挺简单的,但是,脑子短路,有个地方写错了,但是面试官说,思路对了,就过了。

******************************************************************************************************************

******************************************************************************************************************

然后hr说过了,约了面试时间,7月17号下午3点。

三面(2小时)

面试官是前端开发部门的leader。

可以说,三面包含压力成分。题目真心难。

首先,自我介绍,挑一个项目介绍。然后非要我的源码,幸好在csdn上保存了,所以,直接就当下来,一个文件一个文件的讲。问了很多问题,将近问了50分钟,终于讲明白了。

点评: 出现了介绍项目要源码的情况,这种情况一般不是太多见,不管有没有项目,建议将准备的项目做好上传github,做好准备。

 

没有实习经历吗?我说有,华为算法研究部实习过,他说,为啥不写在简历上,我说,简历做的早,之后没有补充。

 

然后开始编程,问了我一道链表题目,我直接说了核心解法,他说,你刷过,我是是的,好,过,下一道,字符串的题目,我说我可能也刷过,我先写吧,面试官笑着说,好的,然后,思路对了,内置函数忘了怎么用了,他问,如果这道题 你忘了这个内置函数怎么使用了,你怎么实现这样的功能,我说这个函数的源码我看过,可以直接用kmp等效。他说好,你能给我讲一下吗?我讲的不好,毕竟不会表达,然后,我说了一句 ,能直接上代码吗?他说可以,我就用了3分钟,写了一下kmp,之后,面试官将我代码拷过去。

点评:面试中出现了kmp算法,这个算法是很难写的。

 

最后一部分是面试中搞得最难的,当时,已经怀疑人生了,面试官让我解释 tcp为啥3次握手,4次挥手,都是 为了防止哪些情况的发生。TCP在做数据传输的时候,其中 包含那些信息。我回到了ip,name,以及控制字段,面试官说不够细致。然后说了好久,我还是回答不出来。

 

点评: TCP三次握手,四次挥手,为什么三次,四次,是滚瓜烂熟的问题,这道题目还额外问了TCP报文的头部信息

 

然后又问,你觉得客户端的通信时怎么建立起来的,我大致回答了一下,他说不够细致,太笼统。我只能老老实实说不知道,然而,他并不罢休,说,如果给你这样一个任务,你会怎么实现。我当时真的是觉得要凉了。

之后又做了很长一段时间的交流,询问我对新技术的学习能力,简单把自己的一些经历做了一下讲解,证明自己好学。然后让我问他问题,这个时候大家一般要抓住机会,多和面试官交流。多为一些有意义的问题,即使失败了,也会有很多对自己有用的信息。

 

面试总评:除了算法外, 这个同学的基础知识和项目都答得一般,还可以答得更好。

 


最新回复(0)