Cyan Blog Cyan Blog
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
  • 简历项目
  • 面试

    • 常见提问
    • 反问
    • 项目面试题

    • 简历项目
      • 反问
      • 简历提问
    • 场景题
    • Java面试题

    • 后端开发
    • 数据库面试题
    • Maven
    • MyBatis面试题
    • Spring面试题
    • SpringBoot面试题
    • SpringCloud面试题

    • Redis面试题

    • 设计模式
    • 中间件

    • Other

    • Random

    • 面试
    • 面试
    2025-04-13
    0
    0
    目录

    简历项目

    好的,我们开始面试。以下是针对你的简历提出的技术问题,请做好准备:

    # 一、Java核心

    1. 你提到熟悉JUC,请解释AQS的工作原理,并举例说明ReentrantLock如何基于AQS实现可重入性?
    2. 使用ThreadLocal存储用户信息时,如何避免内存泄漏?ThreadLocal的key为什么设计为弱引用?
    3. 线程池的核心参数有哪些?如果任务队列使用无界队列会导致什么问题?如何合理配置线程池参数?

    # 二、JVM

    1. 你熟悉JVM内存结构,请画出JVM运行时数据区结构图,并解释方法区与元空间的关系。
    2. 如果线上服务发生Full GC频繁,你会如何排查?请描述具体步骤和可能用到的工具。
    3. CMS收集器与G1收集器在内存回收策略上有何本质区别?为什么G1更适合大内存服务?

    # 三、Redis(重点考察)

    1. 缓存穿透解决方案中,你提到缓存空数据。假设恶意攻击者构造大量不存在的key,如何防止Redis被无效key占满?
    2. 在秒杀场景下使用Lua脚本有什么优势?如果Redis执行Lua脚本时发生网络分区,CAP如何取舍?
    3. Redisson分布式锁的"看门狗"机制如何实现锁续期?如果客户端宕机,锁会立即释放吗?

    # 四、MySQL

    1. 你提到使用乐观锁控制库存,在超高并发场景下可能出现什么问题?如何通过悲观锁+存储过程优化?
    2. 如果发现索引失效,你会如何排查?请举例说明最左前缀原则和索引下推的区别。
    3. 解释redo log和binlog的二阶段提交过程,为什么说这是"双1"配置的理论基础?

    # 五、消息队列

    1. 使用RabbitMQ实现订单超时处理时,为什么选择死信队列而不是延迟队列?两种方案各有什么优缺点?
    2. 如何保证消息队列的消费幂等性?如果消息被重复消费了3次,系统会出现什么问题?

    # 六、项目深挖

    1. 在校园美食圈项目中,你提到接口响应时间降低30%。请说明压测的具体指标(QPS、响应时间、错误率)和压测工具。TPS提升多少才算真正有效优化?
    2. 使用WebSocket实现来单提醒时,如何保证消息的可靠传输?如果遇到网络抖动导致连接中断,系统如何恢复?
    3. 在分布式锁实现一人一单时,如果获取锁后发生长时间GC导致锁超时释放,此时其他线程获得锁并完成下单,此时第一个线程恢复后继续操作,会出现什么问题?如何解决?

    # 七、系统设计

    1. 如果要为校园美食圈增加"附近商家"功能,支持3km内的商户推荐,你会如何设计空间索引?使用Redis GEO还是MySQL GIS?
    2. 假设秒杀活动期间Redis集群出现主从切换,此时库存数据可能出现不一致,如何设计兜底方案?

    # 八、进阶问题

    1. 在Zookeeper和Redis两种分布式锁方案中,如果要实现一个金融级分布式锁,你会如何选择?为什么?
    上次更新: 2025/6/10 17:21:17
    苍穹外卖
    反问

    ← 苍穹外卖 反问→

    最近更新
    01
    md
    06-29
    02
    Redis
    06-29
    03
    HBase
    06-29
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 Cyan Blog
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式