面试题集锦(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)