4.22号非常全的今日头条实习面经c++后台开发
一面 50分钟
1.我看你是机械的,为什么会选择转计算机
2.说说看过什么计算机的书
3.说说计算机的网络模型
4.tcp的三次握手四次挥手的全过程和状态,为什么要四次挥手,为什么要经过TIME WAIT状态
5.tcp udp的区别
6.应用层的协议有哪些,ping使用的什么协议,工作在哪一层
7.http1.0和1.1的区别 http的状态码 为什么需要浏览器缓存 怎么判断消息发送完毕
8.topk问题,10亿个数选最小的100个
9.写两个代码 字符串转double,最大连续子数组的和,判断链表有环
面试官一行一行检查 说没什么问题
10.linux系统的进程怎么查看,怎么看进程占用的系统资源,怎么用命令给一个文件里面的数字按次数排序
差不多就这些,过了一会hr通知二面
二面 25分钟
1.简单介绍一下自己
2.做个题吧 链表排序,看我三分钟就写完了,问我你这是刷了多少题,也没看代码
3.进程通信的方式,僵尸进程 孤儿进程
4.说说怎么实现管道,为什么管道都是用于父子进程或兄弟进程(fork机制的原因),我说了子进程完全继承了父进程的内容,又问我信号会继承吗,我说是的,他说真的吗,难道有什么问题吗
5.问我有没有看过数据库(看过,但是真的没用过,所以没问了)
6.如果要你实现一个微信朋友圈的功能,你会怎么做
7.有没有看过Nginx高性能服务器之类的源码
8.应该对IO复用很熟吧,说说怎么用的
9.做个数学题吧,一副扑克牌取5张,出现顺子的概率,大小王能任意当成什么牌
感觉二面就会这两个题还有上面的基础知识,实际设计不太会,面试官也没怎么问,觉得应该挂了,但是hr还是通知我过了,准备三面
三面 40分钟
1.简单介绍一下自己,经历前面的面试之后有什么感觉
2.我看你用的是c和c++,说说怎么管理内存防止内存泄漏(智能指针)
3.智能指针用在多线程会有什么问题,效率相比不用智能指针会如何
4.怎么查看是否出现了内存泄漏
5.多线程的程序如果出现了死锁怎么去调试
6.客户端从服务器下载东西,如何让下载速度更快
7.说说源代码到最后的可执行文件经历的过程,动态链接和静态链接的区别,优缺点,怎么让程序使用动态,静态链接
8.怎么让makefile里面的文件总是全部编译,而不是看是否修改过
9.一个黑盒数据结构怎么判断是数组还是链表
10.fork调用之后子进程虚拟存储器的状态
11.为什么需要虚拟存储器,有什么优点,每说一个就是还有吗,说了四个之后我说就这些,然后就没问了
12.使用虚拟内存时,怎么解决虚拟内存比物理内存大的问题
13.mmap跟直接使用文件相比有哪些好处
14.你有什么问题要问我的吗?
第三面居然没要写算法,本来以为说道缺页中断的时候会要写LRU的,结果没有,差不多就这些吧,完了hr通知等官网的消息,我感觉是已经挂了
#实习##字节跳动##面经##C++工程师#