一、高频业务场景题(实战向)

1. 电商系统设计

🔹 秒杀系统

  • 核心问题:如何抗住百万QPS?如何防止超卖?

  • 解决方案

    • Redis预减库存(Lua脚本保证原子性)

    • 异步下单(Kafka/RocketMQ削峰)

    • 热点数据隔离(独立Redis集群)

    • 限流降级(Sentinel/Nginx)

🔹 订单超时自动取消

  • 方案对比

    • 定时任务扫描(低效)

    • 延迟队列(RabbitMQ死信队列)

🔹 分库分表后跨库查询

  • 解决方案

    • 全局表(基础数据冗余)

    • 数据异构(ES/Canal同步)


2. 金融支付系统

🔹 防止重复支付

  • 幂等性设计:唯一订单号 + 状态机

  • 分布式锁:Redis SETNX + Redisson Watch Dog

🔹 分布式事务

  • 方案对比

    • TCC(适合强一致性,如支付)

    • SAGA(适合长事务,如订单+物流)


3. 高并发缓存优化

🔹 缓存雪崩 vs 缓存穿透

  • 雪崩:随机过期时间 + 多级缓存

  • 穿透:布隆过滤器 + 空值缓存

🔹 Redis大Key优化

  • 拆分:Hash分片存储

  • 异步删除:UNLINK代替DEL


二、核心八股文(技术原理)

1. Java基础

🔹 HashMap vs ConcurrentHashMap

  • HashMap:JDK8 数组+链表/红黑树,非线程安全

  • ConcurrentHashMap:JDK8 CAS + synchronized 分段锁

🔹 synchronized锁升级

  • 无锁 → 偏向锁 → 轻量级锁(CAS)→ 重量级锁

🔹 ThreadLocal内存泄漏

  • 原因:Key弱引用被回收,Value仍强引用

  • 解决:使用后必须remove()


2. JVM调优

🔹 G1垃圾回收器特点

  • Region分区、可预测停顿、适合大内存(6GB+)

🔹 OOM排查步骤

  1. jmap -dump 导出堆内存

  2. MAT分析泄漏对象

  3. jstack查线程死锁


3. 数据库优化

🔹 MySQL索引失效场景

  • LIKE '%xx'、函数计算、OR条件、隐式类型转换

🔹 十亿级数据分页优化

  • 游标分页WHERE id > last_id LIMIT 10

  • 延迟关联:先查ID再回表


 

 

 

 


 需要25年最新100w字完整版面试场景题库丝我890嗱  

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐