一面
1.自我介绍
2.操作系统,进程,线程,区别,通信方式,进程的五种状态
3.僵尸进程,孤儿进程
4.死锁,条件,如何解决
5.http状态码,400,303,具体
6.http的头部构成,head在什么位置
7.get和post的区别,post安全么?(明文)
8.osi七层网络协议是哪些,每一层讲述一下一些协议,ICMP是用来干嘛的?交换机,路由器分别在哪一层运用,
9.linux查看进程cpu 内存命令,top命令下的cpu组,我们通过哪些哪些参数来具体了解cpu的详情,监控系统内存情况命令,在这些情况中,一般如何查看内存泄漏,怎么去定位,具体到线程
算法
10.单链表 未知长度 删除倒数第k个元素
11.10亿个数,top 10大,思路,数据结构,怎么调整,怎么建堆,
12.对于后台的技术栈,了解哪些。
13.提问环节
http答的超级烂(送分题还是得多记录)以为挂了,结果过了,10分钟后二面
二面
1.自我介绍
2.两道代码题
一个是深拷贝代码,
A B
B中有一个指针,书写构造和析构
A中有一个指针,一个vector<B> vec;书写拷贝,赋值,重载操作符,解引用,析构函数
第二个代码,两个结构体,sizeof 大小,并解释
3.了解锁吗,读写锁,排他锁,共享锁,自旋锁
4.针对锁问题,现在有三个读进程,先读,读耗取一定时间,然后一个写的进程,最后三个读锁
从你的角度,判断下多少种情况,进行上锁,针对读写情况冲突,从公平锁和非公平锁角度来讲述一下,怎么操作?(我参考的单一的读写问题回答,针对保证写优先(非公平)的情况,答得不好,扯了一顿,写缓存)
5.select poll epoll区别,讲述一下
6.http的长连接短连接,长连接有没有什么问题?怎么解决。
7.mysql 事务等级,怎么解决幻读的。
8.生产者消费者问题,消息队列,生产者应该怎么做,消费者应该怎么做?(王道牛逼!)
9.提问环节
一直问操作系统,问到我怀疑人生,考察同步问题,几分钟后,狗屎运,三面了
三面
1.自我介绍
2.http的建立连接过程
3.假如这个服务器不在同一个网下,怎么办(这问题不就是ping baidu.com么),找域名,找ip
4.既然说到TCP问题,那么谈一下三次握手,详细到seq
5.那么我第一次可不可以syn不发送,可以不要么,可以写死么,我不发送syn行不行,为什么
6.第二次握手,服务器不发送syn呢,
7.第三次握手,客户端不返回ack呢,
8.针对第一次,同一个客户端频繁发送syn会有什么后果,怎么解决?
这里提供一个博客,讲的还是比较细致的,https://zhuanlan.zhihu.com/p/199284611,基本上就是考察的tcp每一步干什么,为什么?
针对syn攻击,怎么解决?syncookie syn就绪队列 半连接
9.再写个题
LRU
顺便讲一下思路
10.针对多线程过程中,因为局部性原理,导致有一些要频繁访问的,被置换怎么办,lru有没有什么思路?(我回答了一个lru-k,不知道对不对)
11.来个概率题,一种试纸检测率是50%,人群中,患病的概率是0.01%。问一个人经过试纸检测后,检测为阳性,那么他真实的患病的概率是多少?
-------我一开始以为是个脑筋急转弯,答50%,后来面试官问题,你研究生学过什么数学课没,概率论什么的,猛然想起贝叶斯公式!!!(感谢我的数理统计老师,强行回忆公式没有想起来,大概讲了下)
12.提问环节
太累了,从1点到4点多,许愿,求滴滴爸爸给我个offer吧,呜呜呜!!!
全部评论
(7) 回帖