腾娱互动 C++后端开发 社招 一面
- 一个类里面被const修饰的成员函数,可以访问哪些数据?可以访问const的成员变量吗?可以访问别的const修饰的成员函数吗?
- MySQL为什么用B+树?B+树的树高比较矮,有什么好处?B+树的查询效率真的比红黑树高吗?
- 说说C++程序在运行的时候的内存布局?vector里面存储的元素会被放在哪块地方(堆?栈?)
- 进程间通信的方式有哪些?共享内存用过吗?
- 说说动态链接库和静态链接库的区别?(只回答出dll可以减小exe的大小,lib会包含到exe里面)
- 你知道recv()接口在对端已经关闭的情况下会返回什么错误吗?
- 你在Linux中常用的命令有哪些?awk用过吗?sed用过吗?tcpdump怎么查某个指定的ip地址?grep用过吗?grep里面 -i 参数 什么意思?grep怎么全字匹配?
- 用过哪些在Linux上面查日志的命令呢?用VSCode来搜索是不够用的,比如说我们的项目现在的一个文件夹下面有很多日志,而且每个日志文件里面都有10w+条日志,你觉得用什么Linux命令来查找比较好呢?
- 平时用过gdb吗?程序一般在哪些情况下会发生core dump?(说了两个 数组越界访问、野指针 空悬指针, 算术计算 除以 0 这个没说出来)
- 如果当前哪个服务器发现很卡,然后你ssh到这个服务器后,找到了某个进程的CPU占用率很高,然后你该怎么进一步去找出这个进程里面到底是发生了什么事情从而导致CPU占用率很高?
- 说说玩家角色在跨服务器的时候,原来的服务器和目标服务器之间需要沟通哪些数据?要做哪些操作?
- 你知道玩家的客户端具体是和哪个服务端进程建立TCP连接的吗?比如说现在有网关服务器、登录服务器、场景服务器,虽然玩家的玩法逻辑都是在场景服务器上运行的,但是玩家的客户端真的就是和场景服直接建立了TCP连接吗?玩家假如跨越不同的场景服的时候难道要重新建立TCP连接吗?
- 你上一家的游戏服务端支不支持热重启?有了解过热重启该怎么实现吗?
- 算法口述:假如现在有一个链表,你需要删除这个链表的中间节点,但是你不知道头节点,有什么办法?
- 算法口述:现在有海量数据,你得找出前K大的数据,除了你说的把这些全都push到priority_queue然后再pop出K个之外,还有别的办法吗?
了解情况
服务端纯C++,没有其他语言,跑在Linux上,Linux发行版是centos 6,很老的环境了,C++也是98版本,没有引入什么新特性。9点上班9点下班,一个月里面可能会有2 3 次得需要周六在家里远程解决问题。
当天反馈:凉了。。。我对Linux上各种操作命令相关的问题回答得不好。
难顶,好难找工作,而且C++实在是太少岗位了,刚毕业的应届生们都更卷,我是干了3年的,感觉最近这种行情确实感觉是有点儿没希望了,转行不知道做啥。可能真的要去送外卖了。
说到底,我也没啥能耐,空涨这3年工作经验,想要面试C++服务端、游戏服务端开发、游戏服务端后台开发的同学们可以在下面留言,我会尽我所知进行回答,同时会理性劝退(这不是我在过河拆桥,而且这一行确实太卷太累了)
#面经##C++##你都收到了哪些公司的感谢信?##互联网没坑了,还能去哪里?##牛客解忧铺#