一面:9.10 44分钟(电话面)
1.因为我主要熟悉C++,面试官是受别人委托面我的,没有看过我的简历,说明情况后开始让我进行自我介绍(会不会草率了点….)
2.聊一下#define的特点,说了一下预处理进行替换及define的优缺点,当多处使用同一个值使用define进行一次替换就行,函数也可以做到一次替换,为什么用define不用函数,在debug版本下需要改变ifdef用make的哪个命令。
3.聊一下static,主要分为C和C++分别讲述了一下(文件作用域,内存分配,函数内部生命周期,C++中成员函数和成员变量,this指针,初始化位置等)
4.三次握手过程和相应状态,在可以ping通接收方的情况下接收大量的ACK是什么原因,TCP的超时定时器可以手动设置吗?
5,讲一下CS模型一般用到那几个函数,每个函数都有哪些参数设置,客户端和服务器的bind是否必须?
6.因为自己实现了一个http服务器,大概描述了一下项目,提到了epoll, 让讲一下epoll, 什么是多路IO复用,epoll的边沿触发和水平触发,用边沿触发一般会遇到什么问题,该怎么解决?
7.linux多线程和多进程的区别,调用fork后父子进程共享哪些资源,fork之后父进程修改的内容子进程也会改变吗? 子进程修改的值父进程也会改变吗?聊一下写时复制技术?Fork子进程时父进程一般需要做什么,如果不用wait进行回收会出现什么情况,init进程是自动回收孤儿进程吗?我在回答wait的时候说了一般fork之前用signal函数,在signal中调用wait或者waitpid,被问了除了信号还能使用什么手段,答了kill函数,但好像不是想要的答案。
8pthread_exit会调用析构函数吗(这个不太了解)
9,进程IPC机制,共享内存中多进程是怎么做到多个进行对同一块内存的安全访问的。
10, 线程局部变量需要注意什么,当时没有反应过来问的是thread_local,GG了
11.求一个整型数组的最大连续和,说了动态规划和转换方程,然后又问了还需要注意什么,说了下数组全负的情况及注意点。
12,linux命令介绍,说了一下自己用过的命令,被问了netstat怎么查看超时重传的(gg),然后聊了一下我在项目中如何使用tcpdump,又被问了tcpdump要和哪些工具结合使用。
13.shell编程,awk命令,讲了一些使用awk一般分为那几个部分(FS,begin,end,print),每个部分的格式。给我10行10列数据,都是以逗号分隔,其中第五列数据可能有重复的,统计第五列不同数据出现次数。说了一下大体思路,确实平常用的不太多。
二面 9月18日 现场面 40分钟
1.按照惯例自我介绍
2.三个项目挨个说一遍,每个项目的难点,技术细节都会过问
3.tcp和udp的区别,tcp如何保证其可靠性
4.拥塞避免的理解
5三次握手四次挥手全过程
6.epoll的底层实现,和select和poll的区别
7.tcp的最大报文段长度(隐约记得65535字节),ip分片过程,如何实现把一个报文不分片一次性传输
8.手写代码一个字符串char *p="key1=value1&key2=vaule2&key3=value3",将字符串的key和value以键值对存在map中
9.有什么问题想问的?主要问了下c++在公司的运用情况
三面 9.18 现场面 1小时
三面面试官一看就是个boss,问技术问题一直很严肃
1.撸代码,找出一个字符串中只出现一次的字符,返回下标
2.红黑树有哪些具体应用(答了map,epoll)
3.谈项目,因为用到了epoll,让讲一下epoll的原理,epoll,select,poll的区别
4.tcp四次挥手,拥塞避免
5.项目中用到了md5,sha1,讲了一下性质
6.指针和引用的区别
7.new和malloc的区别
8.mysql有哪些索引,原理及分别应用在哪些场景中,聚簇索引和非聚簇索引的原理
9.事务的四种隔离级别,每种隔离级别分别解决什么问题,默认是哪种,哪种最好,问什么?
10.百度搜索一个字符串,是怎么把以这个字符串为前缀的其它字符串找出来(说了一下字典树,然后让讲字典树的原理和实现过程)
11.美团app首次登陆需要发验证码,以后的访问不需要了,是怎么实现了(回答不知道,然后说猜一下,原理可能类似cookie和session,接着讲了一下这两者的原理,接着被问了如果采用cookie,别人抓取到了包是不是可以黑掉你的账户,应该采取什么措施,不清楚,但是balabala说了下自己的看法,session存在服务端的内存中,内存过大咋办,答采用内存,ssd,机械硬盘加上分布式)
12.形参加const优点。
13.好,技术问题到此结束,开始聊人生,家是哪里的?手里有哪些offer?别人怎么评价你的?平常喜欢一个人还是积极参加集体活动,因为拿到了某个公司的意向书,面试官作为过来人也给了一些自己的看法和建议,同时介绍了一下他们部门的大体情况。最后告诉我三面通过了,hr不在,让我回去等hr电话面。
总结一下:三面下来感觉美团的面试官都超级nice,其中1面被虐的比较惨,全是Linux和网络的知识,好几个没答上来或者没答完整,还是自己项目经验不够丰富,二面比较中规中矩,感觉面试官可能是做java的,所以没有聊太多语言上的东西,更加偏重项目和网络。三面的面试最为顺利。面试官详细的解答了各种非技术问题。
#美团#