写在前面
- 写下这篇博客的时间是2020年3月12日22:00。
- 在今天上午10:30-11:30,我经历了人生中第一次求职面试。
- 目前大三,想在春招找大厂的暑期实习,原计划拿到转正Offer后,大四能够一边企业工作一边完成毕业论文。
- 腾讯今年2020年3月5日可以正式投递简历,2020年3月8日凌晨1:00左右我投递了后台开发实习生岗位。鹅厂的效率很高,2020年3月9日9:46,收到了腾讯的面试邀请,时间是2020年3月12日10:30。
- 收到面试邀请后,迅速把未完成的任务快速处理完后,开始投入面试准备。
- 2020年3月9日下午,复习C++知识。
- 2020年3月10日,复习Linux、操作系统、计算机网络知识。
- 2020年3月11日,复习数据库、Java知识,撰写自我介绍,熟悉简历提及的项目。
- 2020年3月12日10点,进入会议室,对方为天美工作室面试官,心情很复杂(前两天为了专心准备,卸载了王者荣耀)。10:30准时开始面试。
面试问题
- 设计的游戏多人玩是多少人玩,具体如何实现的?(项目相关)
- 游戏客户端是如何连接服务端的?(项目相关)
- Socket是阻塞的还是非阻塞的?(项目相关)
- 服务端监听客户端请求是阻塞监听还是非阻塞监听?(项目相关)
- Linux平台多人游戏服务端和客户端用什么语言?(项目相关)
- 你会使用C++吗?
- 什么是字节对齐?
- 为什么要将字节对齐?
- 该结构体大小?
struct A
{
char a;
int b;
double c;
}
sizeof(A);
- 知道多态吗?
- 什么是虚函数?
- 实现延迟绑定的原理?
- 该结构体大小?
class A
{
public:
int a;
virtual void func();
}
sizeof(A);
Union
用过吗?new
和malloc
的区别?malloc
开辟一块内存后,如何将一个类移到该内存?const char* p1
和const* const p2
的区别?- 如何实现一个函数能够在
main
函数之前执行? - 进程在内存中分为哪些区域?
- 栈区和堆区的大小取决于什么?
- 栈区最大的大小是多少?
- 什么能分配在栈上?
- 模板了解吗?
stl::vector
和stl::map
了解吗,stl::map
用过吗?stl::vector
如何实现?stl::map
底层实现是什么?stl::map
为什么不用平衡树而用红黑树?- 下面的代码会出现什么结果?
std::map<int,int> stMap;
int i = stMap[1024];
- TCP/IP的四层模型是什么(OSI的七层模型)?
- 详述OSI的七层模型?
- TCP如何建立连接?
- TCP如何断开连接?
- TCP断开连接时的
time wait
状态是什么?为什么需要存在这个状态? - 两个数据包传输过来可以一次接收吗?
- 用过UDP吗?
- 谈一下UDP?
- 如果发送一个20K的数据包,接收端存在乱序吗?为什么?
- OSI哪一层对数据包进行切分?
- (共享屏幕编写代码)实现快速排序。
- (共享屏幕编写代码)给你两个栈,实现一个队列。
- (共享屏幕编写代码)实现归并排序。
- 你有什么问题想问我?
总结
- 天美工作室后台开发项目主要基于C++。
- 问的问题非常基础,C/C++基础要实。
- 算法务必深入研究,必须用代码实现,反复练习。
- 多了解粘包分包、异步Socket、select和epoll,Linux、数据库基础要好,熟悉MySQL、InnoDB、MyISAM等。
- 面试官多次询问有什么问题想问他,务必提前准备有价值的问题,尽量抓住机会从面试官那里获取个人真心关注的信息,面试官乐意帮助你进一步提升自己。
能走多远走多远