首页 > 完美世界Java后端一二面面经
头像
再吃一颗苹果_
编辑于 2021-09-09 15:47
+ 关注

完美世界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八股文和答案,考点基本覆盖面试范围,解答也挺靠谱的。我正在看,感觉很适合校招求职。

更多模拟面试

全部评论

(4) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐