秋招结束,回馈一波面经,感谢期间各位牛油的帮助
转眼已经快国庆了,秋招已经过半,楼主的秋招也基本结束。楼主的求职岗位基本都是后台开发或者和后台开发相关。
目前offer情况:vivo(小sp),oppo(白菜),华为(13级),浦发(已发体检通知),字节跳动(意向书),网易互娱
已挂公司:拼多多(二面凉),大疆(二面凉),雷火(四面凉),字节跳动游戏提前批(三面凉)
尚无消息:百度(估计已凉)
正在面:腾讯,又被捞起来鞭尸;
下面话不多说,分享一下楼主还记得的面经吧:
vivo
一面(30分钟):
1、如何存储微博、微信等社交网络中的好友关系
2、一亿个数中取中位数
3、项目
二面(hr面,10分钟):
1、自我介绍一下
2、你觉得你项目中最有成就感的地方
3、用两个标签描述一下自己
2、你觉得你项目中最有成就感的地方
3、用两个标签描述一下自己
字节跳动游戏提前批
一面:
1、手撕代码
1)线程安全的单例模式
2)两数之和(leetcode第一题)
2、讲一下你参与最多的一个项目
二面:
1)线程安全的单例模式
2)两数之和(leetcode第一题)
2、怎么处理网络堵塞
3、三次握手和四次挥手,为什么要三次握手和四次挥手
4、数据库的索引
5、你了解哪些索引结构
6、B树与B+树的区别
7、map的底层结构实现
8、unordered_map的底层结构实现,怎么扩充数据;
9、你了解哪些设计模式
二面:
3、三次握手和四次挥手,为什么要三次握手和四次挥手
4、数据库的索引
5、你了解哪些索引结构
6、B树与B+树的区别
7、map的底层结构实现
8、unordered_map的底层结构实现,怎么扩充数据;
9、你了解哪些设计模式
二面:
1、手撕代码
1)对称二叉树
2)写一个堆,包括插入,删除,返回长度,返回堆顶元素,上下维护
2、简述C++有哪些容器
3、项目中的算法优化做过哪些
4、TCP和UDP的区别
5、如何实现两个界面之间的相互通信
6、主界面打开子界面,子界面如何返回打开主界面
7、你了解哪些设计模式
8、介绍一下观察者模式
9、你有没有投网易或者腾讯,他们游戏做的那么好,诚实一点,投了就是投了,没投就是没投
1)对称二叉树
2)写一个堆,包括插入,删除,返回长度,返回堆顶元素,上下维护
2、简述C++有哪些容器
3、项目中的算法优化做过哪些
4、TCP和UDP的区别
5、如何实现两个界面之间的相互通信
6、主界面打开子界面,子界面如何返回打开主界面
7、你了解哪些设计模式
8、介绍一下观察者模式
9、你有没有投网易或者腾讯,他们游戏做的那么好,诚实一点,投了就是投了,没投就是没投
三面:
1、手撕代码
1)用两个栈实现一个队列
2)判断一个点是否在扇形中
3)实现一个产品:客户端有UI界面,是一个正在编辑的文档,可多用户同时编辑同一个文档
某一个人编辑得内容会在短暂时间更新得到所有人的电脑屏幕上;
会自动保存;
(这一题和面试官撕逼撕的比较久)
2、俄罗斯方块的实现
3、堆区和栈区的区别
4、为什么选择杭州
5、你对游戏程序研发这个行业的看法
6、复制粘贴怎么实现
oppo
一面:
1、算法比赛中印象最深的一题1)用两个栈实现一个队列
2)判断一个点是否在扇形中
3)实现一个产品:客户端有UI界面,是一个正在编辑的文档,可多用户同时编辑同一个文档
某一个人编辑得内容会在短暂时间更新得到所有人的电脑屏幕上;
会自动保存;
(这一题和面试官撕逼撕的比较久)
2、俄罗斯方块的实现
3、堆区和栈区的区别
4、为什么选择杭州
5、你对游戏程序研发这个行业的看法
6、复制粘贴怎么实现
oppo
一面:
2、讲一下你参与最多的一个项目
二面:
1、单向链表和双向链表的区别
2、你觉得你保研的成功方法是什么
3、你大学有没有参见过社团之类的,给你带来的帮助是什么
4、C与C++的区别是什么
5、C为什么偏底层一点
6、根据调度方式分类,有哪些操作系统
7、总结一下递归
8、递归无限执行时,堆和栈是怎么溢出的
9、堆和栈分别存储了哪些东西
10、跨平台是怎么实现的,为什么能跨平台
11、gcc和vs的区别是什么
12、程序运行时,编译器在干什么
注:这个面试官反复问你是否确认你的答案
三面:
2、你觉得你保研的成功方法是什么
3、你大学有没有参见过社团之类的,给你带来的帮助是什么
4、C与C++的区别是什么
5、C为什么偏底层一点
6、根据调度方式分类,有哪些操作系统
7、总结一下递归
8、递归无限执行时,堆和栈是怎么溢出的
9、堆和栈分别存储了哪些东西
10、跨平台是怎么实现的,为什么能跨平台
11、gcc和vs的区别是什么
12、程序运行时,编译器在干什么
注:这个面试官反复问你是否确认你的答案
三面:
1、自我介绍
2、家庭背景
3、给自己打三个标签
4、最痛苦的是什么时候
5、如果你是以个leader。你的一个队友以前非常勤奋,忽然开始懈怠,这是项目又很紧急,你会怎么做
6、你为什么选择oppo
7、你是根据什么找工作的
8、你的期望薪水是多少,为什么是这么多
9、你能说出你身边几个优秀的人吗,他们优秀在哪
10、你对工作地点怎么看
11、你的六级成绩是多少
12、oppo是你投的第一家吗
网易雷火
2、家庭背景
3、给自己打三个标签
4、最痛苦的是什么时候
5、如果你是以个leader。你的一个队友以前非常勤奋,忽然开始懈怠,这是项目又很紧急,你会怎么做
6、你为什么选择oppo
7、你是根据什么找工作的
8、你的期望薪水是多少,为什么是这么多
9、你能说出你身边几个优秀的人吗,他们优秀在哪
10、你对工作地点怎么看
11、你的六级成绩是多少
12、oppo是你投的第一家吗
网易雷火
一面:
1、手撕代码:三数之和
2、虚函数表存在哪,虚函数存在哪,单继承,多继承情况的虚函数表使用方法
3、socket编程的过程,以及select,poll,epoll的区别
4、进程调度算法
5、进程通信方法,利用共享内存通信的具体原理
6、map和 unordered_map的区别,底层实现原理;
{
static int i = 0;
cout << ++I <<endl;
}
Int main()
{
f();
f();
f();
return 0;
}
输出为:
2、192.168.1.1/255.255.254.0中的广播地址为多少
3、TCP协议三次握手和四次挥手
4、TCP协议处理网络堵塞的方法
5、项目
三面:
2、虚函数表存在哪,虚函数存在哪,单继承,多继承情况的虚函数表使用方法
3、socket编程的过程,以及select,poll,epoll的区别
4、进程调度算法
5、进程通信方法,利用共享内存通信的具体原理
6、map和 unordered_map的区别,底层实现原理;
二面:
1、Void f( int index){
static int i = 0;
cout << ++I <<endl;
}
Int main()
{
f();
f();
f();
return 0;
}
输出为:
2、192.168.1.1/255.255.254.0中的广播地址为多少
3、TCP协议三次握手和四次挥手
4、TCP协议处理网络堵塞的方法
5、项目
三面:
1、进程间的通信方法;
2、针对共享内存,当一个进程把一个类写在共享内存中,另一个进程能正确读读出和使用吗,如果类中有虚函数呢,如果类中有int成员,两个进程默认的int类型不一样,那么另一个进程能正确读出吗
3、内存对齐原理
4、map和 unordered_map的区别,底层实现原理
5、哈希表的实现原理及如何以O(1)的复杂度删除封闭式哈希表中的数据
6、数据库中索引的原理及数据结构
7、B+树和红黑树的区别,既然B+树的查询效率比红黑树高,为什么用红黑树的地方不用b+树
8、一个类添加普通成员函数和虚函数会影响类的大小吗;
9、派生类继承的两个直接基类中都包含虚函数f(),并且派生类重写了f(),这种情况下虚函数表是什么样,调用会出什么问题
10、在类中的某个成员函数如下:void f()
{
delete this;
f2();
}
能这样用吗,会报错吗,编译时报错还是执行时报错。
11、你了解内核吗,描述一下系统调用的过程
12、介绍一下函数阻塞的过程及原理
13、select、poll、epoll的区别,epoll的底层实现原理
14、TCP网络阻塞,为什么要那么做。
15、内存泄漏原理及怎么处理。
2、针对共享内存,当一个进程把一个类写在共享内存中,另一个进程能正确读读出和使用吗,如果类中有虚函数呢,如果类中有int成员,两个进程默认的int类型不一样,那么另一个进程能正确读出吗
3、内存对齐原理
4、map和 unordered_map的区别,底层实现原理
5、哈希表的实现原理及如何以O(1)的复杂度删除封闭式哈希表中的数据
6、数据库中索引的原理及数据结构
7、B+树和红黑树的区别,既然B+树的查询效率比红黑树高,为什么用红黑树的地方不用b+树
8、一个类添加普通成员函数和虚函数会影响类的大小吗;
9、派生类继承的两个直接基类中都包含虚函数f(),并且派生类重写了f(),这种情况下虚函数表是什么样,调用会出什么问题
10、在类中的某个成员函数如下:void f()
{
delete this;
f2();
}
能这样用吗,会报错吗,编译时报错还是执行时报错。
11、你了解内核吗,描述一下系统调用的过程
12、介绍一下函数阻塞的过程及原理
13、select、poll、epoll的区别,epoll的底层实现原理
14、TCP网络阻塞,为什么要那么做。
15、内存泄漏原理及怎么处理。
四面(hr面):
1、就一个项目介绍一下这个项目带给你的成长
2、你有什么好的学习习惯
3、职业规划
4、投了其他公司没有
大疆:
2、你有什么好的学习习惯
3、职业规划
4、投了其他公司没有
大疆:
一面:
1、j项目
2、介绍一下有哪些构造函数
3、介绍内存四区
4、const变量存在哪
5、TCP三次握手
一面:
2、介绍一下有哪些构造函数
3、介绍内存四区
4、const变量存在哪
5、TCP三次握手
二面:
1、两分钟讲一个你觉得做得最好的项目
2、10万个数寻找前K大个数
3、怎样在函数运行之前打印字符串
4、嵌入式开发和PC 端开发的区别
5、你觉得嵌入式开发应该注意什么
拼多多:
1、50分钟项目
2、算法题
环路上有N个加油站,每个加油站有汽油gas[i],从每个加油站到下一个消耗cost[i],求到从哪儿个加油站出发。
2、算法题
环路上有N个加油站,每个加油站有汽油gas[i],从每个加油站到下一个消耗cost[i],求到从哪儿个加油站出发。
二面:
1、进程通信的方法
2、管道和消息队列的区别
3、静态全局变量和动态全局变量的区别
4、多进程程序和多线程程序的区别
5、泛型编程时为什么把定义都写在头文件中
6、TCP的拥塞避免
7、select 和epoll的区别
8、客户端发送了两个请求,有一个是失效的,服务端应该怎么去识别
9、现有一台主机有200G数据,怎么最快的将它复制到50台其他主机上,每台主机的接受带宽都是100M
10、将C文件编译成可执行文件的过程。
11、在网页中点击某一个链接 ,描述一下之后的过程
12、循环展开为什么能加快程序运行
13、缺页中断以及段页式存储为什么要这样做
14、TCP传输过程中有几次数据拷贝
15、银行家算法
16、聚簇索引和组合索引的区别
17、DNS域名解析
网易互娱
2、管道和消息队列的区别
3、静态全局变量和动态全局变量的区别
4、多进程程序和多线程程序的区别
5、泛型编程时为什么把定义都写在头文件中
6、TCP的拥塞避免
7、select 和epoll的区别
8、客户端发送了两个请求,有一个是失效的,服务端应该怎么去识别
9、现有一台主机有200G数据,怎么最快的将它复制到50台其他主机上,每台主机的接受带宽都是100M
10、将C文件编译成可执行文件的过程。
11、在网页中点击某一个链接 ,描述一下之后的过程
12、循环展开为什么能加快程序运行
13、缺页中断以及段页式存储为什么要这样做
14、TCP传输过程中有几次数据拷贝
15、银行家算法
16、聚簇索引和组合索引的区别
17、DNS域名解析
网易互娱
一面:
1、撕代码:打印全排列
2、介绍项目
3、内存局部性概念
4、一致性哈希
5、页面置换算法
其他的想起来在补充吧。。。
二面:
撕题:内存拷贝
1、介绍一下虚拟内存
2、指针相减
3、怎么看游戏研发
4、能不能来广州
5、对网易游戏的认识;
撕题:内存拷贝
1、介绍一下虚拟内存
2、指针相减
3、怎么看游戏研发
4、能不能来广州
5、对网易游戏的认识;
字节跳动正式批(效率工程部门)
一面:
1、写一条查询语句(数据库)
2、项目(细节讨论了很久)
3、撕代码:最长不重复子串
二面:
1、介绍IP协议
2、那个指令用了ICMP协议
3、怎么样创建一个只能在栈上创建的类
4、怎样创建一个只能在堆上创建的类
5、介绍依稀allocator
6、介绍TCP协议中的11个状态
7、撕代码:跳格子,数组中每个元素表示的是能在当前位置跳的最远的距离,问从第一个位置出发,能否跳完数组
8、如果只知道一台主机的mac地址,怎么获得它的ip地址
9、怎么由一台主机的ip地址知道整个局域网的网络地址和主机地址,反过来呢?
10、介绍一下vector的底层原理
三面:
1、撕代码:第k大的数
2、进程和线程的区别
3、进程的通信方式
4、什么叫有血缘关系的进程
5、linux系统下按键ctrl+C后会发生什么
6、为什么选择杭州
7、对游戏研发有什么看法。
百度
一面:
1、进程和线程的区别
2、撕代码:两数之和
3、vector的内存管理
4、撕代码:单利模式
5、撕代码:字符串中去空格
6、指针和引用的区别
二面:
1、项目
2、撕代码:去除源码中的注释
3、数学题:平面上有2n个点,任意三个点不共线,问是否存在一条直线,可以平分这2n个点,并给出证明
没了,真的没了
三面:
1、介绍项目
2、Qt中信号与槽的底层原理
3、继续上题,假设你现在有一个信号,有多个窗口可能可以响应这个信号,这多个窗口应该用什么结构去存储,又怎么判断这些窗口是否应该对信号做出反应。
4、map和unordered_map的区别
5、介绍一下队列
6、介绍一下哈希表
7、撕代码:二分法。
8、你了解百度吗
8、你对北京怎么看
华为、浦发的面试内容不太记得了,但应该与上述问题类似。
总结一下,个人认为,虽然今年是互联网小年,但是找到工作其实也没那么难,最重要的是一定要理论基础扎实,题要能撕出来(虽然楼主也很菜。。。。);项目其实没那么重要,楼主的项目其实跟后台都没有什么关系,大部分面试问项目也都是问一下,走个流程,只有少数几个会深挖,但你可以对自己的项目做一下拓展,比如往多进程,多线程方面。另外,有一些竞赛经历也是有帮助的。