完美世界Java后端一二面面经

一面

Java:

  • CMS和G1回收流程、区别、几次StopTheWorld
  • 方法区和栈都有什么
  • TreeMap、LinkedHashMap、HashMap底层结构,
  • HashMap put流程
  • reentrantlock:介绍 、notify源码

数据结构:

  • 大顶堆小顶堆,100个数获取最大的前几个数用哪个

  • 完全二叉树概念

Redis:

  • 底层数据结构

操作系统:

  • 为什么分用户态、内核态,什么程序在用户态执行,什么程序在内核态执行

计算机网络:

  • UDP、TCP介绍,滑动窗口协议

  • 输入网页,返回结果流程

  • ipv4地址不够用,解决方案

数据库:

  • 索引分类
  • 聚簇索引叶子结点、非叶子节点保存什么
  • 命中索引过程

算法(口述):

  • 二叉树层序遍历

  • 二叉树最大深度

二面

Java

  • 并发创建对象

数据库

  • 三大范式
  • 什么时候不命中索引

Springboot

  • 生命周期
  • bean三级缓存

计算机网络

  • HTTPS过程,如何避免中间人攻击
  • TCP状态,Close_Wait,Time_Wait
  • TCP粘包如何解决,数据量过大如何解决

算法(口述)

  • 有一个等概率生成1 ~ 3的随机数生成器,如何改成等概率生成 1 ~ 7。
  • 两个有序数组,求第K小的树,要求时间复杂度最小

项目

  • 如何解决用户密码保存的安全性问题
    可以使用Bcrypt,有四个变量:
  1. saltRounds: 正数,代表hash杂凑次数,数值越高越安全,默认10次。
  2. myPassword: 明文密码字符串。
  3. salt: 盐,一个128bits随机字符串,22字符
  4. myHash: 经过明文密码password和盐salt进行hash,个人的理解是默认10次下 ,循环加盐hash10次,得到myHash

流程
每次明文字符串myPassword过来,就通过10次循环加盐salt加密后得到myHash, 然后拼接BCrypt版本号+salt盐+myHash等到最终的bcrypt密码 ,存入数据库中。
这样同一个密码,每次登录都可以根据自省业务需要生成不同的myHash, myHash中包含了版本和salt,存入数据库。

其他

  • 职业规划
  • 想做什么方向,电商游戏还是其他?
  • 在校排名
  • 有没有做个实际上线的项目

最后顺便推荐一下牛客的《Java岗位面试真题宝典》 专刊,包括Java八股文和答案,考点基本覆盖面试范围,解答也挺靠谱的。我正在看,感觉很适合校招求职。

#完美世界面经##面经##校招##完美世界##Java工程师#
全部评论
老哥答得如何?开始三面了吗
点赞 回复 分享
发布于 2021-08-17 18:53
有hr面消息了吗
点赞 回复 分享
发布于 2021-08-23 00:05
完美世界是两面技术面+hr面吗
点赞 回复 分享
发布于 2021-08-23 23:29
老哥有消息吗,你这些答出来的话也能挂的话也太难了吧
点赞 回复 分享
发布于 2021-09-26 13:01

相关推荐

不愿透露姓名的神秘牛友
10-22 00:14
探探荣耀通软/嵌软池子深度
想六点下班番石榴在线蹲牛友:作者提到公司探探哈哈哈哈
点赞 评论 收藏
分享
3 56 评论
分享
牛客网
牛客企业服务