三七互娱面经

三七互娱(2019年春季校园招聘,岗位:Java游戏开发(服务端))
1.宣讲会笔试,20道单选,10道不定项(具体题目不大记得了)
2.到公司,一份开放题: 
    1.你认为java语言有哪些需要改进的地方
    2.有没有遇到程序性能瓶颈,怎么定位和处理
    3.你心中的游戏服务器是怎样的,工作原理是什么
3.一面(40min):
  熟悉哪些linux命令
  熟悉哪一些数据结构,举几个例子
  讲一下tcp/udp区别,分别的使用场景
  有没有使用过netty,网络编程的知识了解哪些
  有没有看过哪些jdk或开源框架的源码,举几个例子,讲一下底层实现
  hashMap底层结构,扩容机制,导致的性能问题
  开发过程中线程池的使用,初始化参数意义
  多线程环境下怎样保证共享变量是安全的,常见的几种处理方式
  举几个juc包中类的用法
  juc包中的类是怎么保证线程安全的,与之前的有什么区别
  怎样实现无锁线程安全
  讲一下jvm有哪些gc算法,实际开发有没有遇到过内存溢出现象,原因是什么,怎么定位和解决
  平常用过什么设计模式(主要说了工厂和策略),举几个例子,具体怎么设计的,有什么好处
  代码规范和设计方面怎么做,举几个例子(面试官提醒:借鉴代码整洁之道中的几个设计思想)
  平常看什么书,怎么学技术
  平常玩什么游戏
  根据简历:
     讲一下kmp算法和哈夫曼树
     项目中主要负责什么部分,有没有遇到过并发环境下导致的线程安全问题,怎么解决的
     做二次开发主要是用到金蝶云之家哪个部分的功能,怎么结合现有应用的(面试官之前是云之家底层引擎的开发者)
4. 二面(30min):
   jvm运行时数据区域有哪些,分别有什么作用    
   问有没有做过网络编程相关的经验,举几个例子
   线程池的种类,为什么要使用线程池去管理线程
   不加锁怎样实现线程安全
   nio的底层原理,为什么异步非阻塞能够实现无锁线程安全,讲一下实现(还说底层有粒度很小的加锁机制,近似于无锁。。。我一脸懵,还有这操作?)
   juc包有用过吗,讲一下AQS
   volatile实现原理,它能保证线程安全吗,为什么能保证读取的变量值是最新的
   atomic修饰的变量为什么能保证原子操作,实现原理是怎样的,是否加锁了
   hashTable和currentHashMap的底层结构,两者分别怎样实现并发下线程安全,有没有加锁,1.7版本和1.8版本底层实现有什么不同
   实际开发中juc包的使用,举几个实践案例
   游戏服务器开发了解多少
5. hr面
   说人太多,现在的hr面均转为电话面形式,一周内出结果。

你可能感兴趣的:(后端)