面试题集锦(java游戏服务器)

离职原因

  • 从上家离职的原因是什么?

计算机基础

  • 正数和负数及其浮点数是如何在计算机中表示的?
  • 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聚簇索引:

        索引就是数据。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值