游戏公司, 服务器开发, 面的是 java
2024.7.11
面试
网络
- 自我介绍
- 上一段实习的工作和遇到的难点
- 介绍项目
- 为什么用 websocket, websocket 头怎么处理
- websocket 断了怎么处理, 丢失的数据怎么解决
- 用过 socket 编程吗
- tcp 和 udp 区别
- tcp 怎么保证可靠
- tcp 三次握手和四次挥手
- tcp 粘包和解决
- tcp 拆包过程
- 用过 udp 编程吗
- udp 实际应用怎么解决丢包
java
- jvm 虚拟机是什么
- jvm 内存结构
- 内存怎么管理, 分代管理
- 年轻代和老年代怎么转换, 什么时候晋升到老年代
- minor gc 和 full gc
- 垃圾回收的算法, 各自优劣, 是否有内存碎片
- 类加载过程
- 类加载器, 机制, 好处
- 可达性分析
- juc 是什么, 有哪些东西
- 线程池创建, 核心线程数怎么确定
- 线程安全的 ArrayList
- 锁怎么保证性能
- sychronized 怎么实现的
- ReentrantLock 怎么实现的
- 碰到过死锁吗, 会发生什么, 怎么排查定位, 怎么解决
- 泛型怎么实现的, 类的泛型和方法的泛型
- 通配符泛型, 为什么用通配符泛型
- 用过反射吗, 怎么获取到方法的
- java 有多继承吗
- 重载
- 多态怎么实现
- 子类继承父类, 调用方法时怎么做的
- 方法在哪存的, 怎么找到这个方法的
- 装箱和拆箱
- 弱引用和软引用
- 有内存碎片吗, 为什么
- 有内存泄漏吗, 内存泄漏会导致什么
- 32 位机器上 char, int, double 占几个字节
- 机器里面浮点数怎么存
mysql
- 存储引擎, 区别, 底层, 为什么用 B+树
- 回表是什么
- 覆盖索引
- 事务怎么做
- 慢查询怎么排查
redis
- 数据类型
- 持久化怎么做, 怎么存的
- 分布式锁
- 过期策略
- 缓存击穿, 缓存雪崩, 缓存穿透
反问
-
游戏和传统后端有什么区别
-
评价
这次问的不够底层, 还需要再看
-
什么时候出结果
总结
真正见识到了什么叫做八股盛宴, 全文八股, 基本是快问快答. 之前知道游戏公司主要搞网络, 但是没想到要裸写网络编程.