游戏公司, 服务器开发, 面的是 java

2024.7.11

面试

网络

  1. 自我介绍
  2. 上一段实习的工作和遇到的难点
  3. 介绍项目
  4. 为什么用 websocket, websocket 头怎么处理
  5. websocket 断了怎么处理, 丢失的数据怎么解决
  6. 用过 socket 编程吗
  7. tcp 和 udp 区别
  8. tcp 怎么保证可靠
  9. tcp 三次握手和四次挥手
  10. tcp 粘包和解决
  11. tcp 拆包过程
  12. 用过 udp 编程吗
  13. udp 实际应用怎么解决丢包

java

  1. jvm 虚拟机是什么
  2. jvm 内存结构
  3. 内存怎么管理, 分代管理
  4. 年轻代和老年代怎么转换, 什么时候晋升到老年代
  5. minor gc 和 full gc
  6. 垃圾回收的算法, 各自优劣, 是否有内存碎片
  7. 类加载过程
  8. 类加载器, 机制, 好处
  9. 可达性分析
  10. juc 是什么, 有哪些东西
  11. 线程池创建, 核心线程数怎么确定
  12. 线程安全的 ArrayList
  13. 锁怎么保证性能
  14. sychronized 怎么实现的
  15. ReentrantLock 怎么实现的
  16. 碰到过死锁吗, 会发生什么, 怎么排查定位, 怎么解决
  17. 泛型怎么实现的, 类的泛型和方法的泛型
  18. 通配符泛型, 为什么用通配符泛型
  19. 用过反射吗, 怎么获取到方法的
  20. java 有多继承吗
  21. 重载
  22. 多态怎么实现
  23. 子类继承父类, 调用方法时怎么做的
  24. 方法在哪存的, 怎么找到这个方法的
  25. 装箱和拆箱
  26. 弱引用和软引用
  27. 有内存碎片吗, 为什么
  28. 有内存泄漏吗, 内存泄漏会导致什么
  29. 32 位机器上 char, int, double 占几个字节
  30. 机器里面浮点数怎么存

mysql

  1. 存储引擎, 区别, 底层, 为什么用 B+树
  2. 回表是什么
  3. 覆盖索引
  4. 事务怎么做
  5. 慢查询怎么排查

redis

  1. 数据类型
  2. 持久化怎么做, 怎么存的
  3. 分布式锁
  4. 过期策略
  5. 缓存击穿, 缓存雪崩, 缓存穿透

反问

  1. 游戏和传统后端有什么区别

  2. 评价

    这次问的不够底层, 还需要再看

  3. 什么时候出结果

总结

真正见识到了什么叫做八股盛宴, 全文八股, 基本是快问快答. 之前知道游戏公司主要搞网络, 但是没想到要裸写网络编程.