感恩牛客,发个渣渣的秋招面经以及一些杂七杂八的东西
背景:本硕985,专业都是非计算机专业的,投的方向主要是游戏客户端研发,C++研发。九月份的时候后知后觉没有意识到秋招已经来了,等到9月中旬的时候才从实习公司离职开始准备去找。然后开始自学计算机网络,linux操作系统,windows操作系统,计算机图形学还在看。因为我比较懒,申请的公司也不算多,到今天终于是告一段落了,前前后后申请了大概十几个公司左右,面试的几个公司只有两个记得住内容的,下面直接上干货:
一面和二面问的问题大概能想起来这些:
野指针和空指针的区别
new和malloc的区别
空指针可以free吗?野指针可以吗?
堆栈溢出的问题
内存泄漏的问题
const的用法
const函数要修改成员函数怎么办
虚函数与纯虚函数的区别
share_ptr和weak_ptr
类和对象的区别
模板的特化
tcp跟udp的区别
三次握手,四次挥手详细过程
手写快排,二分查找
main函数之前和之后分别执行什么
虚函数的内存分布
tcp的三个状态
手写反转链表的方法(递归非递归)
单链表判断环(越多越好)
虚函数可以加static吗
析构函数为什么是虚函数
手写复制构造函数,赋值操作运算符
线程安全的单例模式
简单工厂模式的实现
如何合并两个堆
TCP状态码
linux的export
http1.0 1.1 2.0
迅雷中间还有个群面,就是大家一起解决问题的那种(主要是智力题,眼力题),跟ebay的群面不一样,ebay的是解决技术问题
然后是腾讯,腾讯的岗位是PC端开发工程师,部门是IEG
一面:
1.自我介绍,
2.C++中的cast(4个cast,const_cast,dynamic,reinterpret,static);
虚析构函数
构造函数调用虚函数
C++的内存模型
虚继承
虚函数是怎么实现的。
3.排序算法的稳定性分析,链表逆置;实现一个栈,使得push,pop和min()的时间复杂度是O(1)
4.操作系统:windows的内存分配,MFC的消息传递机制(我的项目里有MFC)
5.一个很简单的智力题;
二面: 1.堆栈的区别
2.线程的同步几种方式
3.TCP和UDP的选择
4.要什么要用exterc "C"
5.peekmessage和getmessage的区别
6,windows消息传递的步骤
7,函数重载
8,智能指针,几个的优缺点
9.函数调用的出栈入栈顺序
10.linux和windows内存模型的区别
11.渲染流水线(我讲了Unity的渲染流程,包括投影矩阵的生成)
12.光照模型
13.几种寻路算法(Dij,A*)的原理与实现
秋招到现在的几点感想:
1.算法题不一定要刷多少,但是个人感觉有几个重要的点还是要掌握的十分清楚的。DFS,BFS,贪心,分治。。。(我就不献丑了,牛客上面有好多这样的帖子)
2.项目经历一定要好好讲,不要讲业务逻辑(感谢左神指点)
3.面经要看,书也要看,而且要细看,特别是我们这种没有学过的