网易游戏一面
前言
打$offer$收割编程赛,结果拿到了据说比$M\$、GG$还难进的网易游戏的面试机会
非常尴尬啊,前几天上牛客看了一大波计网的东西,本想前一晚(昨晚)再看一遍cpp primer
的
蓝儿搞博客站内搜索搞的太久直接爆炸,没看,结局是今天炸锅
各种问题
总的来说,把学的基础全部问了一遍,简历没写项目,就没问我这个
C++语言部分
int
、long
,long long
位数,int*
位数
反正根据编译器位数和操作系统位数答一答就好了你用过
c++ stl
么?
讲道理,ACM选手天天用,顺序容器、关联容器总的开始,然后我就巴拉巴拉介绍一堆c++ stl
里map
与unordered_map
的区别?
- - 也许面试官不知道ACM是干啥的,反正基本区别就是实现了,一个是RBTree
,另一个是hashtable
空间复杂度、时间复杂度的区别,BST
有序啥的快排是咋实现的?
我会的东西当然说一点了,均摊复杂度$O(nlogn)$,最坏$O(n^2)$
还多说了轴值选择对于复杂度的影响,以及std::sort
内省式排序的实现讲讲shared_ptr?
第一次炸锅在这里,我明明知道会问auto ptr
的东西,还tm再晚都一点没看cpp primer
然后只能凭借一年前看的印象和经验答了,讲了下有引用计数,自动析构,。(可能有内存池管理啥的)
然后就没啥说的了虚函数是咋实现多态的?
基类定义,派生类重载啦,然后说了下细节,虚表啥的,(这里好虚都忘的差不多了派生类如何调用基类的函数?
我忘记可以通过域访问符了,就答了强转,非常尴尬,说了下切片啥的,估计面试官可能忘了切片吧dynamic_cast
和static_cast
的区别
真的太久远了,实在是不记得了,就讲道理了一下堆和栈的区别,不是标准库的那个
就讲了堆存全局变量,静态变量,会初始化
栈上局部变量,还有函数栈帧啥的,详细问了我栈我懵比
所知有限啊,其实堆知道的多点吧,可是问的我栈。好像还有别的记不起来了
数据库
事务和啥啥啥的区别忘记了,反正数据库全忘光,第二次炸锅
操作系统
进程线程区别,多线程编程
前者就讲道理答了一波,后者同步互斥啥的
计网
tcp
和udp
的区别
这个大家都会吧炫酷的问题:如果同时使用
tcp
和udp
通过80端口发数据,会不会炸
第三次炸锅,我说不行,讲道理答了一波,事后问同学发现炸了
设计模式
设计模式都有啥?
我就记得工厂、单例、观察者了,讲讲工厂模式
我实在不知道具体咋说,其实我还是熟悉单例模式 - -
然后就照着数据看过的一点点cocos2d-x
的源码讲道理了一波
算法题
$N$大小的数组,只有$1\sim N-1$的数,只有一个重复出现了,找出来
- 显然的计数排序嘛
- 然后爆炸,想太多了(
难题做多了?),然后想到鸽笼原理和异或发现没法做 - 其实之前有人跟我说个异或解法的
其实数组和减去$1\sim N-1$的和就完了,应该果断说不知道让提示的
应该意识到想歪了就不可能想出来的,唉,这彻底炸锅了
我想问的
- 就随便问了下网易游戏的情况,以及游戏咋开发的,你们有没有自己的引擎这种废话,面试官很健谈啊
- 我今天答的怎么样,你答的挺好的,(
这是说你妥妥的跪了么)
后记
第一次面试攒经验吧,专业课还是很重要的,
- - 多看书吧,既然不能写项目就多看书吧,书才是知识的源泉啊