可酷淘面经(9.22)
可酷淘公司牛客上应该没有他的相关信息,也没有啥笔经面经的,我应该是第一个!
这是一个很小的游戏公司,当时HR在BOSS直聘上联系我,约我过去面试(游戏服务端开发),想着积累下面试经验也可以呀,就应邀了;
一共笔试1小时+一面1小时+二面1小时,觉得他们公司的面试问题挺有意思的,也挺有技术含量的,所以就想着可以总结一下,写一写面经
【现场笔试】时长一个小时
笔试题分选择题和编程题,选择题考察了一些数学上的概率问题以及Java基础和数据结构;
三道编程题是:①字符串转整数(要求满足代码的鲁棒性和考虑大数问题)②斐波那契数列(要求非递归实现)③拿硬币问题
【一面】两个面试官,时长一个小时
一面主要问基础以及项目
1. Java和C语言有什么区别?Java好在哪里
2. 怎么理解Java的封装继承多态?怎么理解Java的跨平台性,一次编译到处运行?
3. 方法重载也算多态的一种体现吗,重载与修饰符和返回值有关吗,如果定义了两个方法,方法名和参数列表都一样,但是修饰符和返回值不一样,那么虚拟机如何判断调用的是哪个方法?(这样的话编译无法通过)
4. 类继承会有什么问题吗,一般什么情况下才会去用继承?
5. ArrayList和LinkedList的区别,线程安全的List有哪些?一般在什么情况下会用ArrayList,什么情况用LinkedList?
6. HashMap如何解决哈希冲突,为什么要用红黑树,二叉树这种不行吗?
7. 为什么重写equals方法还要重写hashcode方法?
8. 观察者模式怎么实现(要我写出代码),适配器模式的应用?
9. Mac地址和IP地址的区别?
10. 访问一个域名,整个过程发生了什么,域名解析如何实现?
11. OSI七层模型和TCP四层模型,各层之间数据包如何发送?
12. 网关的作用是什么?
13. Mysql的优化思路,索引失效的情况
14. 了解GC吗,新生代和老年代采用的GC算法分别是? 什么时候会触发GC,什么情况下新生代的对象才会进入老年代?
15. 堆区和栈区的区别是?方法中定义的变量什么时候被回收?
16. 如果我下了一个订单,但是还未支付,我希望十分钟后还没支付就使得该订单失效,如何实现?
17. 如果多个用户同时提交订单,还要考虑库存的问题,如何保证线程安全?
18. 如果我的店铺上架了一个新的商品,如何使得关注我店铺的用户都能收到通知?(观察者模式)
【二面】两个面试官,时长一个小时
二面主要问实习经历以及一些场景题
1. 为什么离开之前的公司?
2. 在之前的实习过程中,有没有遇到什么难题,如何解决?
3. 你认为游戏开发与Web开发的区别是什么,游戏开发最重要的是什么?
4. 平时玩游戏吗,介绍一款你玩得比较多的游戏?(很少玩游戏,就举了高中一款玩得比较火的:球球大作战)
5. 球球大作战这款游戏你认为开发的难点在哪里?
6. 如果现在让你开发球球大作战这款游戏,你会怎么做,有什么思路,会先从哪里入手?(画思维导图)
7. 类似球球大作战这种游戏怎么实现多个用户一起联机玩的时候,多台手机上显示的页面场景一致呢?
8. 一个人在发消息,另一个人就能接收到消息这种聊天室如何实现?
9. 有做过网络编程吗?
反问:如果走的是游戏开发方向,我需要加强哪块知识的学习,希望面试官能给一些建议,让我有更明确的学习方向!
面试官的回复是:其实游戏服务端开发与Web系统开发本质上相差不大,但是游戏开发可能会更加注重一个建模思想,当你拿到一个需求的时候,需要构建出相应的模型;再者就是要加强网络编程以及多线程并发编程的相关学习。
总结:对于基本不玩游戏的我,应聘游戏开发岗其实有点吃亏hhh,介绍一款游戏回答得不是很好,问我一款游戏开发的难点也回答得一般,但是面经还是要写的!