快手

一面

  • 自我介绍
  • 项目和业务
  • redis分布式锁实现细节
    主要用到的命令
    需要注意点
    怎么保证别人释放锁,不把我的key delete掉(通过判断value值),且怎么保证线程安全 (lua脚本保证原子性)
  • redis ttl 返回值 >0 ,-1 ,-2都是代表什么
  • redis 过期策略 和 定期删除、惰性删除
  • zk 分布式锁 和 redis分布式锁区别
  • CAP理论相关, 为什么C和A不能兼容
  • 怎么实现可用性
  • 对比rabbit MQ 、rocketMQ 、 Kafka
  • Kafka的分区备份有几个最好
  • 异常体系
  • 分别举例 error,运行时异常,受检异常
  • HashMap key是一个类,需要注意什么 (重写hashCode和equals)
  • HashMap 并发为什么会成环
  • HashTable 和 ConcurrentHashMap
  • 多线程相关
  • 算法题:m个大小为n的有序数组合成一个 (采用归并算法 + 小顶堆)

 

二面

  • 项目和业务
  • 整个开发部署运维和线上诊断问题的流程
  • 服务出现假死怎么办
  • 排查线上问题
  • 怎么找出大量full gc的原因
  • 线程池核心参数
  • 有序高并发用户状态更新
    (userId,  status)
    后端需要实时更新用户状态,且要保证状态更新的顺序性,怎么用线程池做?
    可以用多个线程池,通过一些算法把userid映射到具体的线程池去执行任务

你可能感兴趣的:(面试)