面试经历与试题回顾
近期在上海参加了 8 家公司的面试,其中 7 家止步于技术一面。以下是整理的面试试题:
- 为什么 HashMap 默认长度是 16,为什么链表到了 8 会转红黑树?
- RabbitMQ 是如何防止队列阻塞的?
- 聚集索引查询,一共会扫描几次内存?
- 分布式锁如何实现,不借助第三方技术?
- 除了 synchronized、volatile,还能怎么保证内存可见性?
- Eureka,我想新增一个功能,给出一个 Eureka 上挂载的服务列表,并且实现服务的上下线怎么做?
- Redlock 红锁有什么缺陷,怎么解决?
- 缓存穿透如何解决?
- Redis 接收到命令后,它是如何修改内存的?
- 如果叫你设计一个分布式系统,你会怎么设计?
- 如何解决线程死锁的问题?
- 在没有 dump 文件的情况下,如何分析系统挂掉的原因?
- 一般来说,你会如何分配堆内存,给老年代分配多少,给新生代分配多少?
- 什么是顺序 I/O?


