网易游戏一面

前言

打$offer$收割编程赛,结果拿到了据说比$M\$、GG$还难进的网易游戏的面试机会
非常尴尬啊,前几天上牛客看了一大波计网的东西,本想前一晚(昨晚)再看一遍cpp primer
蓝儿搞博客站内搜索搞的太久直接爆炸,没看,结局是今天炸锅

各种问题

总的来说,把学的基础全部问了一遍,简历没写项目,就没问我这个

C++语言部分

  • intlonglong long位数,int*位数
    反正根据编译器位数和操作系统位数答一答就好了

  • 你用过c++ stl么?
    讲道理,ACM选手天天用,顺序容器、关联容器总的开始,然后我就巴拉巴拉介绍一堆

  • c++ stlmapunordered_map的区别?
    - - 也许面试官不知道ACM是干啥的,反正基本区别就是实现了,一个是RBTree,另一个是hashtable
    空间复杂度、时间复杂度的区别,BST有序啥的

  • 快排是咋实现的?
    我会的东西当然说一点了,均摊复杂度$O(nlogn)$,最坏$O(n^2)$
    还多说了轴值选择对于复杂度的影响,以及std::sort内省式排序的实现

  • 讲讲shared_ptr?
    第一次炸锅在这里,我明明知道会问auto ptr的东西,还tm再晚都一点没看cpp primer
    然后只能凭借一年前看的印象和经验答了,讲了下有引用计数,自动析构,。(可能有内存池管理啥的)
    然后就没啥说的了

  • 虚函数是咋实现多态的?
    基类定义,派生类重载啦,然后说了下细节,虚表啥的,(这里好虚都忘的差不多了

  • 派生类如何调用基类的函数?
    我忘记可以通过域访问符了,就答了强转,非常尴尬,说了下切片啥的,估计面试官可能忘了切片吧

  • dynamic_caststatic_cast的区别
    真的太久远了,实在是不记得了,就讲道理了一下

  • 堆和栈的区别,不是标准库的那个
    就讲了堆存全局变量,静态变量,会初始化
    栈上局部变量,还有函数栈帧啥的,详细问了我栈我懵比
    所知有限啊,其实堆知道的多点吧,可是问的我栈。

  • 好像还有别的记不起来了

数据库

事务和啥啥啥的区别忘记了,反正数据库全忘光,第二次炸锅

操作系统

进程线程区别,多线程编程
前者就讲道理答了一波,后者同步互斥啥的

计网

  • tcpudp的区别
    这个大家都会吧

  • 炫酷的问题:如果同时使用tcpudp通过80端口发数据,会不会炸
    第三次炸锅,我说不行,讲道理答了一波,事后问同学发现炸了

设计模式

  • 设计模式都有啥?
    我就记得工厂、单例、观察者了,

  • 讲讲工厂模式
    我实在不知道具体咋说,其实我还是熟悉单例模式 - -
    然后就照着数据看过的一点点cocos2d-x的源码讲道理了一波

算法题

$N$大小的数组,只有$1\sim N-1$的数,只有一个重复出现了,找出来

  • 显然的计数排序嘛
  • 然后爆炸,想太多了(难题做多了?),然后想到鸽笼原理和异或发现没法做
  • 其实之前有人跟我说个异或解法的

其实数组和减去$1\sim N-1$的和就完了,应该果断说不知道让提示的

应该意识到想歪了就不可能想出来的,唉,这彻底炸锅了

我想问的

  • 就随便问了下网易游戏的情况,以及游戏咋开发的,你们有没有自己的引擎这种废话,面试官很健谈啊
  • 我今天答的怎么样,你答的挺好的,(这是说你妥妥的跪了么

后记

第一次面试攒经验吧,专业课还是很重要的,
- - 多看书吧,既然不能写项目就多看书吧,书才是知识的源泉啊