问你JUC,你说不做中间件开发没用过。 问你spring,你说会用注解、xml配置就可以了。 问你redis、zk、mq的高可用,你说那是运维同学的工作。 问你算法,你说写业务代码也用不上都忘记了。

java基础

  • 怎么用jdk实现类似redis的可过期的kv存储功能?
  • spring怎么解决bean的循环依赖?
  • jmm的可见性原理和实现方式。
  • private/static/final等分别能否被动态代理?
  • 不用synchronized和lock怎么实现线程安全的单例?

    中间件

  • mysql怎么显示加锁,有什么区别?

  • mysql的内存结构?
  • 为什么mysql不采用io多路复用技术?
  • redis的热key怎么解决?
  • redis什么场景会有多线程?
  • redis的高可用方案?
  • redis的迁移如何保证业务无感?
  • 分布式锁的zk实现原理?
  • dubbo的调用过程?

    操作系统

  • epoll什么时候比select慢?

  • io多路复用为什么要搭配非阻塞方式使用?
  • https和http相比多了什么过程?
  • http的header中的keep-alive的作用?
  • TCP的time_wait是什么情况下出现的?
  • TCP怎么保证可靠传输的?
  • 不使用redis等存储中间件怎么实现session功能?
  • 创建和销毁线程为什么开销很大?
  • 什么是CAP理论,常见的系统是什么系统(mysql、zk、redis、mq)?

实操题

  • Git rebase 与 Git merge的区别?
  • cpu飚高怎么处理?
  • 内存标高怎么处理?
  • maven的deploy和package有什么区别?

设计题

  • 项目中的核心模型、状态机怎么设计的。
  • 如何设计平滑的统计每个ip的访问次数?
  • 设计一个标签系统?
  • 设计一个权限系统?
  • 设计一个高并发登录系统。
  • 设计一个信息流(读写扩散)系统。
  • 设计一个系统,要求极致的写性能,你会考虑哪些?
  • 设计一个弹幕系统。

开放题

  • 你的日常沟通对象是谁?
  • 作为系统owner应该关注哪些事情?
  • 代码CR你是怎么做的?
  • 你对团队做过什么贡献?
  • 你认为你做的业务核心价值是什么?在你们公司的整个商业模式中做了什么贡献。
  • 你觉得你有什么优势?
  • 你的职业规划?
  • 说一件你一直在坚持的事情?