- 博客(1999)
- 资源 (1)
- 收藏
- 关注
原创 干货 | Java8 新特性指导手册
本教程翻译整理自 https://github.com/winterbe/java8-tutorial目录:一、接口内允许添加默认实现的方法二、Lambda 表达式三、函数式接口 Functional Interface四、便捷的引用类的构造器及方法五、Lambda 访问外部变量及接口默认方法5.1 访问局部变量5.2 访问成员变量和静态变量5.3 访问接口的默认方法...
2019-01-15 19:29:19
836
原创 拼多多二面:为什么有了线程,还需要协程?我:额,协程是啥...
面试答这道题,三层递进:先用一句 "进程是资源分配单位、线程是调度单位、协程是用户态线程" 给出核心结论,再从切换开销角度讲清楚三者的性能差异(关键点:内核态 vs 用户态),最后点一下 Java 21 虚拟线程作为加分项。:能不能把进程、线程、协程和 Java 的实际应用联系起来,比如 JVM 进程模型、Java 线程与 OS 线程的映射关系、Java 19 虚拟线程(协程的 Java 实现)。:当虚拟线程遇到 IO 阻塞(网络请求、文件读写等)时,自动让出底层的平台线程,给其他虚拟线程用。
2026-04-15 16:25:49
166
转载 【突击必备】疯传Java界,堪称最强面试合集!
直击底层,深度拆解Spring AI的核心原理与源码架构,帮你从根源理解技术逻辑。,把大厂面试官的提问逻辑、评分标准、高频考点全拆解,耗时打磨出这份。篇幅有限,暂时只展示这么多,想要全套资料的自己。等技术栈,随手截了部分资料,大家先看下,,这里也给大家推荐一个免费技术课程——,深挖近3个月一线互联网、科技公司的。六、SpringCloud相关知识点。本课程由图灵课堂的两位大佬共同主讲,有时间的强烈建议学习一下,七、Redis相关知识点。九、MySQL相关知识点。八、并发编程相关知识点。
2026-04-14 15:12:38
2
原创 面试官:谈谈 InnoDB 中的表级锁、页级锁、行级锁?(修订版)
面试官不仅仅是想知道你背过这三种锁的名字,更是想知道你是否理解不同锁粒度对并发性能和数据安全的影响,能否在设计上做出合理权衡。:考察你是否清楚 InnoDB 默认使用行级锁,以及什么情况下会 "意外" 升级为表级锁(这可是生产事故的高发区)。行级锁包括记录锁、间隙锁、临键锁等,通过意向锁实现多粒度锁定的协调。实现高并发,但在无索引查询、全表扫描等场景会升级为表级锁,需特别注意避免 "锁表" 事故。:是否理解共享锁(S 锁)和排他锁(X 锁)的兼容矩阵,以及意向锁在多粒度锁定中的作用。
2026-04-14 15:12:38
433
转载 最近AI圈爆火的Hermes到底是什么?
作为从 2026 年 2 月底才发布的开源项目,Hermes Agent 在不到两个月的时间里,GitHub 总星标已突破 4.7 万,贡献者数百人,并在多日内持续霸榜全球开源榜单第一。和传统 Agent 不同,Hermes 试图成为一个能够持续积累经验的长期系统:它会从已经完成的任务中学习,在不同会话、不同平台之间保留记忆,并逐渐形成一套属于用户自己的能力结构。更重要的是,Skill 在使用过程中会自我迭代——当你使用某个 Skill,Agent 发现更优的方法,会自动更新 Skill 文档。
2026-04-13 09:37:21
56
转载 最近,Java招聘市场已经疯掉了。。。
Mysql、Spring、Mybatis、Redis、MQ、Zookeeper、Netty、Dubbo、Spring Boot、Spring Cloud、数据结构与算法、设计模式、网络与操作系统、三高架构、线上疑难问题、大厂面试场景题、项目亮点和难点、K8S云原生。本次课程将带你基于Spring框架集成DeepSeek大模型,实战开发智能对话、图像生成、语音翻译等AI场景,并深入。AI的程序员,正在被会AI的程序员淘汰;,还有足够震撼到每一个Java程序员的,可以称之为全网最详细的,
2026-04-13 09:37:21
7
原创 美团二面:生产环境 RocketMQ 消费延迟很高怎么办?我只答出加消费者...
其中 80% 以上的堆积根因在消费端,所以日常开发中要格外关注消费逻辑的性能。上图展示了消息转发方案的核心思路:用一个轻量级的临时消费者快速将堆积消息从原 Topic 转发到新 Topic,然后由新的消费者集群按照自己的节奏慢慢消费。:面试官不仅仅是想知道你怎么 "救火",更是想知道你是否能快速定位消息堆积的根因——是消费端太慢、还是生产端太猛、还是 Broker 出了问题。广播模式下每个消费者都会消费所有消息,堆积只和单个消费者自身消费能力有关,扩容消费者并不能分担压力,需要通过优化消费逻辑来解决。
2026-04-12 15:47:36
469
原创 阿里面试官:并发和并行的区别是什么?这都说不清楚吗?
面试答这道题,三层递进:先说清楚定义(逻辑同时 vs 物理同时),再从 CPU 调度角度解释底层机制(时间片轮转 vs 多核执行),最后点明它们不是对立概念——并发是程序结构,并行是执行方式。关键点是:只有一个 CPU(厨师),靠频繁切换来营造 "同时" 的错觉。就像两个厨师各做各的菜:厨师 A 做西红柿炒蛋,厨师 B 做宫保鸡丁,两个人真正同时在工作,互不干扰。**并发是 "同时应对",并行是 "同时干活"**。多核 CPU 上,每个核心可以独立执行一个线程,是真正的物理并行,不需要来回切换。
2026-04-11 14:56:49
550
原创 面试官:Dubbo 和 Feign 有什么区别?
从上到下分为 Proxy(代理层)、Cluster(集群容错层)、LoadBalance(负载均衡层)、Protocol(协议层)、Exchanger(信息交换层)、Transport(网络传输层),每一层都可以灵活替换,形成了完整的 RPC 链路。随机(Random)、轮询(RoundRobin)、最少活跃调用数(LeastActive)、一致性哈希(ConsistentHash),默认随机。:考察你是否理解 RPC 与 HTTP 调用在协议层面的差异,以及序列化、负载均衡、服务治理等核心机制。
2026-04-10 09:06:28
625
原创 华为面试官:Redis 挂了数据会丢失吗?如何保证数据不丢?我:缓存而已,丢了就丢了...
实际生产中,建议同时开启,用 AOF 保证数据安全,用 RDB 做冷备。:面试官不仅仅是想知道 RDB 和 AOF 的全称,更是想知道你是否理解 Redis 作为内存数据库,为什么需要持久化,以及两种方案各自的实现原理和触发机制。,用 RDB 格式存储全量数据保证恢复速度,用 AOF 命令记录增量变更保证数据完整性,实现两者的优势互补。:定期快照,体积小恢复快,但可能丢数据 —— "像拍照,抓住某个瞬间的状态"。:追加日志,数据更安全,但文件大恢复慢 —— "像录像,记录每一个动作"。
2026-04-09 15:51:49
637
原创 得物二面:Redis 中某个 Key 访问量特别大怎么办?我:Redis 能顶得住...
对于可预期的热点(如秒杀、大促),可以提前将热点数据加载到本地缓存中,活动开始前就预热好。:面试官不仅仅是想知道热点 Key 的定义,更是想知道你是否能区分热点 Key 和大 Key 的不同(一个是 "访问太多",一个是 "数据太大"),以及热点 Key 对 Redis 集群的具体影响。两者可能同时存在(比如一个又大又被频繁访问的 Key),但解决思路完全不同:热点 Key 要分散访问,大 Key 要拆分数据。:增加从节点,读请求分散到多个从节点,热点 Key 的读压力被多个节点分担,适合读多写少的场景。
2026-04-08 16:48:15
737
原创 面试官:ZSet 的底层实现是什么?(修订版)
字典实现 O(1) 按 member 查 score,跳表实现 O(logN) 的范围查询和排名计算。:跳表的最底层就是完整的有序链表,定位起点后直接向后遍历即可,内存连续访问对 CPU 缓存友好。:先用跳表定位到起始 score(O(logN)),然后沿 Level 1 链表向后遍历 M 个元素。跳表负责按分数范围查询(O(logN)),字典负责按成员查分数(O(1)),两者配合实现了 ZSet 的所有操作。listpack 去掉了。:先找到插入位置,然后随机生成新节点层数,更新每层的前后指针。
2026-04-07 09:32:00
571
原创 百度面试官:Redis 内存满了怎么办?你有想过吗?
如果这 20 个 Key 中过期的比例超过 25%,说明当前过期 Key 很多,就再随机抽 20 个继续清理,直到过期比例降到 25% 以下,或者执行时间超过上限(默认 25ms)。定时删除需要为每个设置了过期时间的 Key 维护一个定时器,如果同时有几十万个 Key 设置了过期时间,就会有几十万个定时器同时运行,如果有些 Key 没有设置过期时间,或者过期策略清理速度跟不上新 Key 的写入速度,内存还是会满。如果过期 Key 数量非常多,而随机抽取的概率有限,仍然会有大量过期 Key 残留在内存中。
2026-04-06 16:52:25
655
原创 滴滴二面:你项目为什么选择 RocketMQ,而不是 Kafka? 我:支支吾吾....
场景(电商、金融、订单等)下,RocketMQ 提供了事务消息、延迟消息、高可靠同步双写等 Kafka 和 RabbitMQ 不具备或不擅长的特性,同时全 Java 技术栈降低了团队的学习和运维成本。(电商、金融、订单),只要满足 "事务消息、延迟消息、高可靠、Java 栈" 中任意一个需求,RocketMQ 就是最优解。,追求极致吞吐,但在业务消息场景(如订单、支付)下的可靠性、功能丰富度不如 RocketMQ。订单超时取消(延迟消息)、分布式事务(事务消息)、异步解耦(普通消息)、数据同步(广播消费)
2026-04-05 16:09:13
711
原创 得物二面:Redis 如何高效安全的遍历所有 Key?(修订版)
后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,遍历期间新增的 Key 有可能不会被返回。因为游标算法是按照固定的跳跃顺序遍历桶,如果新 Key 被放入了已经遍历过的桶中,就会被跳过。当遍历过程中发生了 rehash(哈希表扩容或缩容),某些 Key 可能从旧位置迁移到了新位置,导致被访问两次,返回重复。:能否给出完整的遍历方案(如批量删除匹配的 Key、大 Key 扫描),并知道如何处理。
2026-04-04 21:20:23
876
转载 流程引擎的架构设计
对于组织架构而言,需要考虑,系统本身要具备 OU 存储的能力,对于没有组织架构的用户,可以直接在系统的组织架构中新建组织架构。另一种方式是使用流程引擎来实现,流程引擎对接应用场景所需数据,如加班申请,流程引擎对接 SSO、OU、审批人配置、权限等,实现这样一个流程,只需要关心流程配置、流程节点和流程表单即可,流程流转以及流程的数据处理,都通过流程引擎来完成。而在流程执行过程中,流程数据、不是路程的相关人也都不应该看到流程,处理过流程的审批人,不可以再对流程进行处理等,都是权限方面要考虑的问题。
2026-04-04 21:20:23
28
原创 滴滴二面:怎么解决 Redis 缓存和数据库的一致性问题?
再加上缓存 TTL 兜底,即使所有重试都失败了,缓存过期后也会从 DB 加载最新值。:只有 "读请求写缓存" 的速度比 "写请求更新 DB + 删除缓存" 还慢时才会出问题,而写 DB 一般比读 DB 慢得多(涉及锁、磁盘 IO),所以实际中几乎不会发生。线程 A 先更新了数据库(20),但还没来得及更新缓存时,线程 B 已经完成了数据库和缓存的更新(30)。:面试官不仅仅是想知道 "先删缓存" 还是 "后删缓存",更是想知道你是否能分析出每种方案在并发场景下的数据不一致问题,以及背后的时序原因。
2026-04-03 16:00:00
798
原创 得物二面:什么是缓存击穿、缓存穿透、缓存雪崩?(修订版)
布隆过滤器判断 "存在" 时有一定误判率(可能实际不存在),但判断 "不存在" 时是 100% 准确的。:穿透是 "查的东西根本不存在",击穿是 "一个热点 Key 过期了",雪崩是 "一堆 Key 同时过期或 Redis 挂了"。:面试官不仅仅是想知道这三个概念的定义,更是想知道你是否能清晰区分它们的触发场景("查不到" vs "过期了" vs "集体过期"),以及各自对应的解决方案。:击穿是 "一个热点 Key 过期",雪崩是 "大量 Key 集体过期",范围更广,危害更大。这是最简单也最有效的手段。
2026-04-02 15:41:48
828
转载 重磅!JetBrains 正式发布全新的 AI 开发工具,定名 AI IDE AIR
可以输入清晰的任务描述(如 "为订单模块添加分页查询功能,支持每页 10 条数据"),并补充上下文(如 "参考。后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,支持多任务并行运行(如一个任务写测试,另一个修 Bug),互不干扰。
2026-04-01 15:00:26
112
原创 华为二面:Redis 分布式锁如何实现?(修订版)
是否了解 Redisson 的看门狗机制、RedLock 算法的争议,以及分布式锁的局限性(不是银弹,某些场景需要 ZooKeeper)。,更是想知道你是否理解分布式锁的核心诉求(互斥性、防死锁、可重入、高可用),以及 Redis 实现分布式锁从初级到高级的演进过程。(过期时间的 1/3)检查一次,如果锁还被持有就续期到 30 秒,彻底解决了业务执行时间不确定导致的锁提前释放问题。释放锁即可,不需要等到过期。:如果业务执行时间超过了锁的过期时间,锁会自动释放,其他线程就能获取到锁,导致并发问题。
2026-04-01 15:00:26
601
转载 用 SpringBoot + Tess4j 优雅实现图像文字识别,真香!
OCR 是 "Optical Character Recognition"(光学字符识别)的缩写,它是一种技术,能够将不同形式的文档(如纸质文档、PDF 文件或图像)中的打印文本、手写文本或其他类型的数据转换为机器可编辑和可搜索的数据格式,如文本文件或电子文档。后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,这一步包括图像的获取、二值化、去噪、旋转校正、分割等,以提高后续识别的准确性。
2026-03-31 14:27:10
33
原创 面试官:MySQL 乐观锁与悲观锁怎么实现?(修订版)
后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,:面试官不仅仅是想知道你听过这两种锁的名字,更是想知道你是否理解它们的核心思想差异—— "先加锁再访问" vs "先访问再加锁"。:考察你是否在实际项目中使用过这两种锁,能否根据业务场景(读多写少 vs 写多读少)选择合适的锁策略。:乐观锁适合 "冲突少、读多写少" 的场景,悲观锁适合 "冲突多、写频繁" 的场景。和乐观锁有什么关系?
2026-03-31 14:27:10
578
转载 太离谱了,简历写了这个项目薪资直接涨了 80%!!
(例如:Spring面试题合集、Spring Boot如何定义Starter、Spring Boot的启动原理、自动配置原理?(例如:12306抢票系统设计、如何设计一个秒杀系统、高并发系统、微博系统以及百万级数据导出Excel怎么性能优化,避免OOM)(含:OAuth2有哪几种授权模式、说说Seata的执行流程、说说你对DDD的理解、微服务设计的9种设计模式等)(例如:JDK8提升代码优雅技巧、BIO、NIO、AIO有什么区别、什么事守护线程?,还分别有技术进阶、项目经验、面试突击不同版块的视频解析。
2026-03-31 14:27:10
14
转载 Java中的5大AI框架!
随着Spring AI的1.0 GA发布、LangChain4j的持续迭代、阿里云开源Spring AI Alibaba和AgentScope-Java,以及微软的Semantic Kernel加入战局,Java生态终于形成了完整的AI开发版图。后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,该框架由Spring官方团队维护,旨在将Spring的设计原则(可移植性、模块化设计)应用到AI领域。
2026-03-30 09:30:27
67
原创 京东二面:加索引时,会锁表吗?(修订版)
面试官不仅仅是想知道一个 "是" 或 "否" 的答案,更是想知道你是否理解 MySQL 的 DDL(数据定义语言)执行机制,以及 Online DDL 的原理。后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,:需要重新获取 MDL 排他锁,把 Online Log 中的增量数据应用到新索引上,然后更新元数据。生产环境建议明确指定。,但在准备和提交阶段会有短暂的元数据锁(MDL),生产环境建议使用。
2026-03-30 09:30:27
564
原创 字节一面:Redis 和 Caffeine 的区别是什么?
后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,:面试官不仅仅是想知道两者的功能差异,更是想考察你是否理解 "本地缓存" 与 "分布式缓存" 的本质区别,以及在系统架构中各自扮演的角色。:Caffeine 作为 L1 缓存提供极速响应,Redis 作为 L2 缓存保证数据一致性,通过消息机制同步各节点本地缓存。:是否在实际项目中使用过这两种缓存,是否了解它们在生产环境中的坑和最佳实践。
2026-03-29 17:03:39
537
转载 同事一个比喻,让我搞懂了 Docker 和 k8s 的核心概念
后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,其实这俩概念我以前看过,知道是"打包完整环境、到处运行",但一直停留在似懂非懂的状态。说白了,Docker 解决的是"打包和运行"的问题,K8s 解决的是"大规模部署和管理"的问题。
2026-03-29 17:03:39
36
原创 面试官:什么是最左前缀匹配?为什么要遵守?(修订版)
最左前缀匹配原则是联合索引的核心使用规则,其根本原因是联合索引的 B+ 树按照定义顺序构建,先按第一列排序,第一列相同再按第二列排序。:联合索引的 B+ 树是按照定义顺序构建的,先按第一列排序,第一列相同再按第二列排序,以此类推。:联合索引像字典排序,必须从左边开始连续匹配,跳过前面的列就像在字典里直接翻 "中间的字",无法利用有序性。是指:联合索引按照定义顺序从左到右依次匹配,查询条件必须从索引的最左列开始,并且不能跳过中间的列。跳过前面的列,后面的列无序,二分查找就失效了。
2026-03-28 15:50:12
315
原创 腾讯二面:binlog、redolog 和 undolog 三大日志的区别?
是 InnoDB 特有的。,所有存储引擎都可以使用。redo log 只需要保留 "从检查点到当前" 的数据,更早的日志对应的数据已经刷盘,可以覆盖。:redo log 是 "崩溃恢复的救命稻草",undo log 是 "后悔药的原料",binlog 是 "主从复制的信使"。:正因为 binlog 在 Server 层,redo log 在引擎层,才需要 "两阶段提交" 来保证两者的一致性。:是否理解 redo log 和 binlog 的 "两阶段提交" 机制,为什么需要这个机制来保证数据一致性。
2026-03-27 15:16:01
591
转载 使用 Shadcn UI 构建 Java 桌面应用
本文用 shadcn/ui + React + TypeScript 构建一个跨平台的 Java 桌面应用,解决三个核心问题:怎么嵌、怎么加载、怎么通信。完整源码在 GitHub。后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,
2026-03-27 15:16:01
52
原创 字节二面:什么是数据库死锁,怎么解决?(修订版)
面试官不仅仅是想知道你听过 "死锁" 这个词,更是想考察你是否真正理解死锁产生的四个必要条件(互斥、占有并等待、不可抢占、循环等待),以及为什么在数据库中会发生死锁。后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,:事务之间形成循环等待关系。
2026-03-26 09:01:43
578
转载 曾经的王,springboot倒下了。。。
已是开发架构师,薪资也已经拿到48K,但由于在一个赛道久了,也早已遇到瓶颈,王大哥也不甘于此,了解到AI上限高、薪资高、机会更多,经过身边专业的朋友认可后果断加入学习,后面经过某手多轮面试最终拿下大模型架构,K4a级别,张同学是金融专业的大三学生,并且是普通本科,因为自己对计算机行业比较热爱,加上AI是趋势,不管来自任何行业、任何专业,都有一试的机会,张同学通过系统学习,最终用能力证明。,尤其是大模型、多模态、自然语言处理等领域,落地应用越来越多、就业缺口持续扩大,薪资也在不断水涨船高。
2026-03-26 09:01:43
12
转载 OpenClaw到底能干嘛?30个落地案例,看完直接用
后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,,你会发现这是一个"让 OpenClaw 每天帮你抓 Reddit 热帖+生成摘要"的完整方案。如果你也装好了 OpenClaw,但一直没动起来,这个项目可能是你最需要的"说明书"。
2026-03-25 16:03:28
61
原创 面试官:MySQL 唯一索引和主键索引的区别?(修订版)
面试官不仅仅是想知道 "有什么区别",更是想考察你是否理解主键索引(聚簇索引)和唯一索引(二级索引)在存储结构上的根本差异。,可以有多个,允许 NULL(可多个),叶子节点存储主键值。:考察你是否清楚主键不允许 NULL,而唯一索引可以(但只能有一个),这是很多面试者容易忽略的细节。:一种特殊的唯一索引,每张表只能有一个,用于唯一标识每一行记录,InnoDB 中主键是。:保证索引列的值唯一,一张表可以有多个唯一索引,InnoDB 中唯一索引是。,每表只能有一个,不允许 NULL,叶子节点存储完整行数据;
2026-03-24 09:01:06
341
转载 Nacos 服务注册为什么默认是临时实例?
后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,那时候服务挂了,通常只是显示不健康,节点信息还会保留在那儿。大家在 K8s 环境下用 Nacos,建议就保持默认配置,不要手动去开持久化模式,否则你的控制台里可能会留下一堆清理不掉的无效数据。因为那时候 IP 是固定的,机器挂了,修好重启,IP 还是那个 IP。即使集群之间数据还没完全同步,只要能让服务注册上来,能让别人发现你,不报错,比什么都强。
2026-03-24 09:01:06
28
原创 面试官灵魂一问:MySQL 深度分页如何优化?(修订版)
后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,答:因为只查主键/索引列时,MySQL 可以使用"覆盖索引",直接在索引树上获取数据,不需要回表去聚簇索引查完整记录。执行机制——它需要扫描 offset + size 条记录再丢弃前面的,而不是"直接跳到第 offset 条"。导致的全表扫描,优化核心是 **"利用索引直接定位起始点,避免扫描后丢弃"**。上图对比了传统分页和游标分页的性能差异。
2026-03-23 12:32:30
579
转载 锁明明还没过期,为什么另一个线程能抢进去?
如果中间有线程 B 抢占了锁,拿到了 Token 34 并修改了数据,线程 A 的 Token 33 就会变成旧版本,数据库的更新操作就会失败,影响行数为 0。这样一来,只要线程 A 的进程没挂,即使正在 Full GC,只要 GC 结束,守护线程也会恢复工作去续期,锁就永远不会过期。线程 A 还在执行业务逻辑,锁的过期时间也没到(理论上),但线程 B 竟然大摇大摆地抢到了锁,开始修改同一份数据。这又是数据覆盖了,即使有看门狗,在极端并发下,分布式锁依然无法保证 100% 的互斥安全性。
2026-03-23 12:32:30
30
转载 Nacos 点了下线,为什么流量还是打到了停机的机器上?
后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,在这几十秒里,虽然 Nacos 服务端已经把那个节点标记为下线了,但网关本地的缓存还没刷新,网关手里拿着的依然是旧名单。在这 40 秒里,机器还在正常运行,依然在处理请求,只是我们在这 40 秒里等待全网所有的网关更新完缓存。在真实的生产环境下,如果发布流水线真的只是这么干,那每次发版的一两分钟里,你们的网关日志里一定会刷出一堆。
2026-03-22 14:58:16
34
原创 阿里二面:什么是 MySQL 回表查询?如何避免?(修订版)
当通过二级索引(非主键索引)查询数据时,如果 SELECT 的字段不完全包含在索引中,MySQL 需要先从二级索引树查到主键 ID,再回到聚簇索引树根据 ID 查找完整记录,这个过程叫 "回表"。后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,:面试官不仅仅是想知道 "回表" 这个概念,更是想考察你是否理解 InnoDB 的聚簇索引和二级索引的区别,以及 B+ 树的存储结构。避免回表的核心手段是。
2026-03-22 14:58:16
280
转载 如何画出一张优秀的架构图?(老鸟必备)
先不去管这些图好不好,我们通过对这些图的分类以及作用,思考了一下,总结下来,我们认为,在画出一个好的架构图之前,首先应该要明确其受众,再想清楚要给他们传递什么信息,所以,不要为了画一个物理视图去画物理视图,为了画一个逻辑视图去画逻辑视图,而应该根据受众的不同,传递的信息的不同,用图准确地表达出来,最后的图可能就是在这样一些分类里。可以看到,非常简单、清晰,相信不需要解释,都看的明白,里面包含了需要建设的系统本身,系统的客户,和这个系统有交互的周边系统。这样一个简单的图,可以告诉我们,要构建的系统是什么;
2026-03-21 16:39:04
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅