可酷淘游戏开发面经

一面 八股 1小时

  1. 自我介绍
  2. 实习是去哪?学校安排的吗?是培训机构还是公司?有自己找过吗?
  3. 考过研吗?
  4. 了解过游戏开发吗?什么时候了解到的?
  5. 倾向做前端还是后端
  6. 说下Java和C++的区别
  7. C++除了用智能指针,还有什么方法进行内存管理(不知道)
  8. 怎么用原始指针来管理内存
  9. new了个对象要怎么处理
  10. 用malloc分配的内存怎么进行释放
  11. C++指针的一般用法是怎么样的?
  12. C++是面向对象还是面向过程
  13. 面向对象的特性?细说一下
  14. 继承有什么有点
  15. 子类可以继承父类的所有特性吗?
  16. 私有继承时,派生类能访问到父类全部的成员吗?
  17. 私有继承和保护继承的区别?
  18. 保护继承时,子类能访问父类全部的成员吗?
  19. 什么时候调用子类的虚函数?子类可以调用父类的虚函数吗?(C++采用作用域运算符::访问,这时不是运行时多态而是编译时就指定好的。Java用super关键字)
  20. 虚函数表是什么?
  21. 虚函数存放在哪?如果是存放在常量区,为什么能覆盖?(编译时候生成的)
  22. 虚函数表的数据结构是什么?
  23. C++中static关键字的作用(持久化、隐藏、共享)
  24. 被static修饰的成员变量存放在哪?(全局区,全局区的变量只会初始化一次,并且在程序结束后被操作系统回收)
  25. 怎么访问static成员变量?(可以通过对象名,也可以通过类名)
  26. static成员方法和普通成员方法有什么区别?(静态方法只能访问静态成员,以及通过在方法内实例化对象的方式间接访问实例成员)
  27. C++内存分区(代码区、常量区、全局区、堆、栈)
  28. 堆区和栈区的区别
  29. 抽象类是什么?(不能实例化,纯虚函数)
  30. 虚函数是什么?
  31. 纯虚函数是什么?(没代码区)
  32. 设计代码,就是运用多态特性的编程
  33. 数组和链表的区别?
  34. 数组中间插入元素的时间复杂度
  35. 怎么在链表中插入一个节点
  36. 说一下vector是什么实现的
  37. 二叉树的层序遍历怎么实现(要一个队列)
  38. DFS怎么实现
  39. 用递归和非递归的方式分别怎么实现中序遍历(写代码,非递归要一个栈)
  40. 介绍OSI模型和TCP/IP模型(物理、数据链路、网络、传输、会话、表示、应用)
  41. 路由在哪一层,干什么用
  42. TCP和UDP
  43. 三次握手、四次挥手
  44. 三次握手的实际意义是什么
  45. TCP怎么确保传输的可靠(滑动窗口和超时重传、校验和)
  46. 怎么确认滑动窗口的大小
  47. TCP和UDP一般应用在哪里?
  48. 平时玩什么游戏?
  49. 进程和线程是什么?
  50. 算法题,在100个int的数组中找相加等于100的两个数(哈希)

二面 总监 1个小时

  1. 为什么以项目经理的角色参与到项目(给自己挖坑了,被认为是在为了挤出时间考研,把开发工作交给组员)
  2. 聊了考研(下次别聊了,又给自己挖坑了,总监太会套话了)
  3. 项目经理的工作重点是什么?在整个团队中是个什么定位
  4. 实训的最大收获是什么
  5. 为什么用QT框架
  6. C++也有其他的GUI框架,为什么不选择它们
  7. web前端和桌面端前端有什么区别?在性能上有什么区别
  8. 讲下C++、Java、Python各自的优缺点(强类型与弱类型、编译型与解释型)
  9. 讲得更通俗易懂,假设总监是个小白来介绍这三的优缺点
  10. Java是在虚拟机上解释运行,为什么还要编译对象?(从跨平台的角度回答了)
  11. Python也是可以跨平台为什么不用编译?既然不用编译,那Java的编译就不是为了解决跨平台的问题吧(继续被深挖)
  12. 相比Python,Java为什么要编译?
  13. 换一种问法,什么时候采用C++、Java、Python?
  14. Python主要是干什么的?爬虫、数据清洗只是Python的一部分应用,不能代表全部,还有什么地方要用Python?
  15. 别人写类库,为什么不在C++或Java写?Python相比Java有什么独特的魅力(总监问C++、Java、Python区别的核心问题)
  16. 怎么理解脚本?在Python中怎么体现脚本的特性(之前理解的脚本是一行一行执行的bat或shell,但被反驳了)
  17. Python是不是脚本?(总监明确说Python就是脚本语言,回去查到脚本就是解释型语言的一种。脚本语言的程序是文本文件,并且是解释执行的。但解释型语言的程序不一定是文本文件,如Java的字节码)
  18. 性能上,三种语言对比怎么样?
  19. 为什么C++的性能更高?是因为Java要解释执行字节码吗?性能消耗在JVM上吗?(和系统底层的接近程度)
  20. 了解过JIT吗?(当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器,JIT编译器将字节码编译成本机机器代码。在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用该JIT技术可以,可以接近以前纯编译技术。)
  21. 不考虑Java虚拟机解释的消耗,Java和C++的性能是否一样?
  22. Java中的内存管理和C++的内存管理有什么区别?
  23. Java和C++对比起来,各自内存管理有什么优缺点(一直答不到点上,继续被追问)
  24. C++中,程序员通过指针控制内存,能带来什么好处?
  25. Java也能将引用移交到其他线程中,这和C++有什么区别?
  26. Java的垃圾回收机制是这么工作的?
  27. Java的垃圾回收机制在对象超时会回收内存吗?
  28. 在什么时候进行回收内存?
  29. 有哪些作用域?
  30. 在主函数中new了一个对象,然后将引用给另一个变量,原对象后面不再会被访问,垃圾回收机制会在运行时进行优化吗?原来的对象会被释放吗?(原对象是通过动态逻辑进行转移的,所以编译时候是无法确认的,所以无法在编译过程进行优化)
  31. 多线程编程是这么写的?
  32. 子线程的创建时机是什么?
  33. 用线程池可以怎么进行优化?这机制会带来什么问题和好处?
  34. 无限的线程除了会导致内存溢出还会带来什么问题?
  35. 为什么采用来个请求就创建一个线程来处理的模型?
  36. 采用的socket编程是基于什么协议?介绍TCP
  37. UDP有什么使用场景?举例子(要在应用层保证可靠)
  38. DNS协议为什么要使用UDP而不是TCP?(为了性能,TCP要建立链接,这些链接会增加DNS服务器的负担,而且可以在应用层保证可靠)
  39. 平时玩什么游戏?
  40. HTTP协议是基于什么协议?平时用哪个版本的HTTP协议?(TCP或UDP,HTTP3.0版本支持UDP,靠应用层保证可靠性)
  41. 又开始聊考研的问题了。没考上不甘心吗?当时为什么考研?考哪里?为什么考本校不往上考?考什么方向?为什么考这个方向?之前有了解过这个方向吗?如果考上有规划未来进什么岗位工作?进哪家公司?为什么要进这个岗位?但现在却在工作,有什么想法?现在的职业规划怎么样?
  42. 对什么行业感兴趣?为什么对这个行业感兴趣?你感觉这个行业要解决什么问题?你认为这个行业未来发展的瓶颈是什么?在这个岗位未来发展的难点会是什么?
  43. 问有投过什么公司?有offer了吗?什么时候开始找工作的?
  44. 毕业设计的课题是什么?为什么选这个课题?答辩了吗?分数如何?
  45. 平时在学校写的代码量如何?
  46. 对学校的哪门课程感兴趣?为什么对这么课程感兴趣?
  47. C++怎么实现跨平台?
  48. 反问
全部评论
现在什么进度了
1 回复 分享
发布于 2023-05-06 16:00 江西
什么时候投的啊
点赞 回复 分享
发布于 2023-05-06 16:15 山东

相关推荐

10-14 14:12
已编辑
少儿频道 算法工程师
反向练手了属于是
牛客71321951号:秋招的每一步都在成为小丑王的路上狂奔
点赞 评论 收藏
分享
5 30 评论
分享
牛客网
牛客企业服务