离职原因
- 从上家离职的原因是什么?
计算机基础
- 正数和负数及其浮点数是如何在计算机中表示的?
- get和post区别?
寻路
- 6边形寻路相比四边形寻路的优点是什么?
- 6边形和4边形相比,在坐标系中摄像机的角度有什么不同?
- 在寻路这块优化?(A*寻路是性能很低的,我们一般优化怪的路径,因为是确定的。 人的路径不确定)
redis
- 如果根据同score的,根据时间先到排到前面,这种排行榜如何设计?
- redis中跳表的结构是怎样的?
- 分布式锁在你工作中都用到了在哪些场景?
- 既然redis是单线程的,那么实际情况中,qps达到多少会慢的不可接受?
锁
- synchronized是如何实现的?
- synchronized锁升级的过程是怎样的?都有哪几个阶段?
- 锁升级为重量级锁后,还会变为轻量级锁吗?
- 如何理解volatile关键字?
- reentrantlock中有哪几个方法? 比如超时的。
zk
- zk中有几种reload模式? 还有哪些服务发现技术? etcd了解过吗?
- zk中的一致性算法讲一下?
- zk高可用这块,你们线上是如何部署的?
tcp
- 拥塞控制了解吗? 比如快速重传等都有哪些方式?
- 可靠的udp的经典实现kcp了解吗? 我们为什么不用tcp? 实现可靠的udp必须做哪几个东西?
- 不做ack行吗?
- 如果在网络不好的情况下,比如过山洞持续了半个小时,会不会有大量的包重试,浪费大量的流量,如何解决?
ip协议:
- ip协议的格式都有哪些内容? ip头部、ack
jvm
- 调优参数都有哪些? G1
- 垃圾回收算法有哪些
- 三色标记
juc
- concurrenthashmap核心源码? 何时扩容?初始容量大小是多少?
- concurrenthashmap是如何扩容的
线程
- 谈谈你对线程的认识?
- java中一个任务被提交到线程池的完整过程说一下? 线程池中线程数量是如何变化的?
- java中有哪几种线程池?
- parallelStream的底层线程池的实现
- java线程栈的大
- 线程绑定
mysql
- 在mysql中数据引擎是如何组织数据格式的??
分布式
- global服需要多个吗? (单点故障问题)
- 如果有多个,可能会存在哪些需要解决的问题?
- 多个工会共同打一个世界Boss,这个如何架构? 匹配服如何设计?
- 匹配服,这块你们的qps是多少?
设计模式
- java有哪几种动态代理技术? 如何实现的?
netty
- EventLoop可以在bossgroup和workergroup中共用吗?
- 谈谈netty中你对零拷贝的理解?
java热更
- agent机制,热更原理
- 何时需要打破双亲委派机制? 是解决什么问题的?
epoll
- 水平触发和边缘触发区别
java对象的内存结构是怎样的?
skynet中actor之间如何通信?
NioEventLoop是否能被共用?
为什么必须是3次握手?
索引的理解,联合索引?
事务是如何实现的?
socket默认连接是多少个?
MMO中性能瓶颈在哪里?(战斗更新和移动?)
锁升级过程?
线程池中执行过程。
红黑树和跳表?
chm扩容流程?
1.数组达到8,链表达到64
2.putAll数据量很多
3.数据量达到阈值
chm:
cas+volatile // 节点为空
cas+synchronized // 节点不为空
TreeMap的结构?
AQS相关
redis:
缓存穿透:大量查询到sql。需要加布隆过滤器。
缓存雪崩:大量key同时过期。key加上随机数。
netty中的0拷贝:
1.mmp内存映射。
2.buffer对象组合。
3.nio sendfile直接发送目标channel。
mysql聚簇索引:
索引就是数据。