问你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实现原理?
-
操作系统
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你是怎么做的?
- 你对团队做过什么贡献?
- 你认为你做的业务核心价值是什么?在你们公司的整个商业模式中做了什么贡献。
- 你觉得你有什么优势?
- 你的职业规划?
- 说一件你一直在坚持的事情?