首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Java场景面试题
用户6854537597769
创建于2025-10-08
订阅专栏
用于场景面试
等 11 人订阅
共297篇文章
创建于2025-10-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
🚀 设计一个每秒生成百万ID的分布式ID生成器
别慌!今天我们从零开始设计一个超高性能的分布式ID生成器! 🎬 第一章:需求分析 功能性需求 非功能性需求 💡 第二章:方案设计 架构选择:号段模式 + 双Buffer 🎭 生活比喻:银行取号机进化史
❄️ 分布式ID生成方案:从雪花算法到美团Leaf、百度UidGenerator
别慌!今天我们深入剖析分布式ID的各种方案,从原理到实战! 🎬 开篇:为什么需要分布式ID? 单机时代的ID生成 分布式时代的挑战 ❄️ 第一章:雪花算法(Snowflake)- 经典之作 核心原理
🦒 Zookeeper核心机制:Watcher和ZAB协议深度解析
别慌!今天我们深入剖析Zookeeper的两大核心机制! 🎬 开篇:Zookeeper是什么? 定位 🎭 生活比喻:物业管理中心 👁️ 第一章:Watcher机制深度剖析 核心原理 🔥 关键特性 特性
🐕 Redisson分布式锁深度剖析:看门狗到底是怎么工作的?
别慌!今天我们深入Redisson源码,把看门狗机制讲得明明白白! 🎬 开篇:为什么需要Redisson? 原始Redis锁的痛点 Redisson的解决方案 🔍 第一章:Redisson架构总览 核
🔐 分布式锁的三大门派:Redis、Zookeeper、数据库谁更强?
别慌!今天我们深入剖析分布式锁的三大流派,从原理到实战全搞定! 🎬 开篇:为什么需要分布式锁? 单机时代(一个人的江湖) 分布式时代(群雄争霸) 解决方案:需要一个所有服务器都能访问的"锁"! 🥇 第
🎮 Seata分布式事务框架:选择AT、TCC还是Saga?
别慌!今天我们深入剖析Seata的三大模式,让你做选择时胸有成竹! 🎬 开篇:Seata是什么? Seata(Simple Extensible Autonomous Transaction Arch
💍 从相亲到结婚的漫长征程:分布式事务的四种解决方案
别慌!今天我们用最生动的方式,把分布式事务的四大门派讲得明明白白! 🎬 开篇:为什么需要分布式事务? 单体应用时代(一个人说了算) 微服务时代(众人拾柴火焰高,但也容易扯皮) 核心痛点:不同服务使用不
🎭 鱼与熊掌不可兼得?揭秘分布式系统的CAP定理和BASE理论
别慌!今天我们用最接地气的方式,把这个让无数程序员头疼的问题讲得明明白白! 📚 第一章:CAP定理 - 分布式系统的"不可能三角" 什么是CAP定理? CAP定理是分布式系统的三大核心保证,由计算机科
并行流Parallel Stream:便捷但有陷阱🌊
一、基本使用 串行 vs 并行 二、底层实现 ForkJoinPool 自定义线程池 三、使用陷阱⚠️ 陷阱1:线程安全问题 陷阱2:IO操作 陷阱3:任务太小 四、适用场景判断 ✅ 适合并行流 CP
高性能对象池:对象复用的艺术🏊
一、为什么需要对象池? 问题:频繁创建销毁对象 解决:对象池复用 二、简单对象池实现 三、Apache Commons Pool 四、使用场景 数据库连接池:HikariCP、Druid 线程池:Th
Fork/Join框架:分治法的完美实践🌲
一、核心思想 二、基本使用 三、任务拆分策略 阈值设置 经验值 四、工作窃取(Work Stealing) 双端队列: 自己从头部取任务 别人从尾部偷任务 五、面试高频问答💯 Q: Fork/Join
Executor框架:任务与执行的解耦🏗️
一、Executor框架层次 二、核心接口 Executor 最简单实现: ExecutorService 三、设计思想 1. 任务抽象 2. 执行策略 3. 结果获取 四、生命周期管理 五、使用示例
手写无锁栈和队列:CAS的极致应用🔓
一、无锁栈(Treiber Stack) 实现 ABA问题解决 二、无锁队列(Michael-Scott Queue) 实现 三、性能对比 结果: 实现 吞吐量(ops/秒) 竞争程度 synchro
SynchronousQueue:零容量的交接站🎭
一、SynchronousQueue是什么? 核心特点 容量为0:不存储元素 直接交付:生产者阻塞,直到消费者取走 配对模式:生产者和消费者必须同时到达 生活类比 普通队列像快递柜📦: 快递员放进柜子
读写锁的锁降级:只降不升🔽
一、什么是锁降级? 锁降级(Downgrade)✅ 顺序: 写锁 → 读锁 → 释放写锁 = 降级成功 二、为什么不能锁升级? 锁升级(Upgrade)❌会死锁 原因: 三、完整的锁降级示例 缓存更新
并发三性:可见性、原子性、有序性🔺
一、可见性(Visibility)👁️ 问题:一个线程的修改,另一个线程看不到 解决方案 方案1:volatile✅ 方案2:synchronized✅ 方案3:Atomic类✅ 方案4:final✅
活锁检测与避免:比死锁更隐蔽🔄
一、什么是活锁? 死锁 vs 活锁 死锁: 线程阻塞,互相等待 活锁: 线程运行,但无进展 生活类比 死锁像两辆车在窄路相遇🚗🚙: 谁都不让,卡死 活锁像两个人在走廊相遇🚶🚶: 都想让路 同时左移 →
为什么禁止用Executors创建线程池?💣
一、Executors的三大陷阱 陷阱1:newFixedThreadPool - 无界队列OOM 源码: 问题: LinkedBlockingQueue默认容量Integer.MAX_VALUE(2
Future.cancel的假象:协作式取消🛑
一、Future.cancel的签名 参数: true:如果任务正在运行,发送中断信号 false:如果任务还未开始,取消;如果已开始,让它完成 二、cancel()的三种情况 情况1:任务还未开始
手写限流器:令牌桶与漏桶算法🚰
一、四大限流算法 1. 固定窗口计数器(最简单) 缺点: 临界问题 2. 滑动窗口(改进) 3. 令牌桶(Token Bucket)⭐推荐 特点: ✅ 支持突发流量(桶内有令牌就放行) ✅ 平均速率控
下一页