19年Java岗面试分享:升级打怪连跳三家公司 最终斩获心动offer(15)

  • 先自我介绍下

  • 聊项目 , 逆向系统是什么意思

  • 聊项目 , 逆向系统用了哪些技术

  • 线程池的线程数怎么确定?

  • 如果是IO操作为主怎么确定?

  • 如果计算型操作又怎么确定?

  • Redis熟悉么 , 了解哪些数据结构?(说了zset) zset底层怎么实现的?(跳表)

  • 跳表的查询过程是怎么样的 , 查询和插入的时间复杂度?(说了先从第一层查找 , 不满足就下沉到第二层找 , 因为每一层都是有序的 , 写入和插入的时间复杂度都是O(logN))

  • 红黑树了解么 , 时间复杂度?(说了是N叉平衡树 , O(logN))

  • 既然两个数据结构时间复杂度都是O(logN) , zset为什么不用红黑树(跳表实现简单 , 踩坑成本低 , 红黑树每次插入都要通过旋转以维持平衡 , 实现复杂)

    推荐阅读