<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[doom_1817的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/doom_1817</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; doom_1817]]></copyright><item><title><![CDATA[XXL-JOB 分布式调度：从任务触发到执行结果]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/164340655</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/164340655</guid><author>doom_1817</author><pubDate>Thu, 03 Sep 2026 22:23:49 +0800</pubDate><description><![CDATA[调度中心和执行器的划分、触发到调度执行再到回调的完整链路、集群协调、路由、分片、重试与幂等设计。简洁表达，不超过150汉字。</think>XXL-JOB解决的是分布式定时任务的调度问题，核心在于区分调度中心与执行器：调度中心负责按时触发、选节点、记录状态；执行器负责真正执行并回传结果。调度的关键在于处理集群协同、路由策略、分片广播、阻塞超时、失败重试等场景。重点需要注意的是：调度成功不等于]]></description><category></category></item><item><title><![CDATA[Spring AI MCP 工具调用实战：从入门到企业级集成]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162907198</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162907198</guid><author>doom_1817</author><pubDate>Wed, 15 Jul 2026 15:25:07 +0800</pubDate><description><![CDATA[是 Anthropic 提出的一种开放标准协议，旨在让 AI 模型能够安全、标准地调用外部工具和API。如果把 LLM 比作大脑，MCP 就是连接大脑与外部世界的神经系统。Spring AI调用远程 API（天气、股票、数据库查询等）执行系统命令（需谨慎）操作文件系统集成第三方 SaaS 服务Spring AI MCP 为 Java 开发者提供了一套标准化、声明式、可扩展的 AI 工具调用方案。✅协议标准化：不管后端用什么语言实现，MCP 协议统一✅解耦性强：工具提供方与消费方完全解耦。]]></description><category></category></item><item><title><![CDATA[Spring AI 框架选择指南：Spring AI vs. LangChain4j vs. Semantic Kernel]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162906834</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162906834</guid><author>doom_1817</author><pubDate>Wed, 15 Jul 2026 15:15:21 +0800</pubDate><description><![CDATA[学习门槛：LangChain4j > Spring AI > Semantic Kernel（Java版因文档少反而较难）生产就绪度未来趋势：Spring AI会随着Spring官方生态的投入越来越强；LangChain4j将继续保持社区领先一句话建议如果你是Spring开发者，选 Spring AI；如果追求功能完备且框架无关，选 LangChain4j；如果押注微软生态，选 Semantic Kernel。]]></description><category></category></item><item><title><![CDATA[AI Agent智能体实战：一文教你实现优快云自动发文与微信通知闭环]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162793380</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162793380</guid><author>doom_1817</author><pubDate>Sat, 11 Jul 2026 16:30:32 +0800</pubDate><description><![CDATA[Planning模式是AI Agent的一种高级工作模式，指Agent在接收到用户指令后，先进行任务拆解与规划，再按步骤执行。1. 分析用户需求2. 生成文章内容3. 调用发布工具4. 获取结果5. 发送通知通过AI Agent智能体，我们可以轻松实现从内容生成到多平台发布再到消息通知的全流程自动化。这不仅大幅提升了技术内容运营的效率，也为开发者提供了一个可复用的自动化范式。学会使用Planning模式进行任务拆解掌握工具调用链的设计方法实现优快云自动发文与微信通知闭环。]]></description><category></category></item><item><title><![CDATA[结构化提示词设计指南：从零打造专业级AI Prompt模板]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162770627</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162770627</guid><author>doom_1817</author><pubDate>Fri, 10 Jul 2026 20:30:39 +0800</pubDate><description><![CDATA[结构化提示词是一种系统化的AI指令设计方法，它将角色设定、技能描述、行为规则和工作流程有机整合，形成一个完整、自洽的指令框架。明确性：清晰定义AI的角色、目标和边界一致性：确保每次交互的输出质量稳定可靠可复用性：形成模板后可应用于多种场景可维护性：层次分明，便于修改和迭代角色定义是结构化提示词的基石。一个清晰的角色设定能让AI快速进入状态，生成更专业、更具代入感的内容。# Role: AI提示词优化专家## Profile- language: 中文。]]></description><category></category></item><item><title><![CDATA[RAG知识库与AI Agent架构实践：从最小测试库到Flow Agent的完整技术解析]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162769604</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162769604</guid><author>doom_1817</author><pubDate>Fri, 10 Jul 2026 18:30:47 +0800</pubDate><description><![CDATA[RAG知识库是企业级AI应用的"记忆体"，负责存储和检索专业知识知识标签机制可以有效隔离不同知识库，防止信息混淆SEQUENTIAL模式适合流程固定的任务，简单可靠FLOW模式具备动态规划和决策能力，适合复杂场景的组合可以构建强大的智能应用系统。]]></description><category></category></item><item><title><![CDATA[MySQL 面试八股文]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162736095</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162736095</guid><author>doom_1817</author><pubDate>Thu, 09 Jul 2026 17:36:47 +0800</pubDate><description><![CDATA[MySQL面试要点总结： 数据库范式：1NF要求属性不可再分；2NF消除非主属性对码的部分函数依赖；3NF消除传递函数依赖。 存储引擎：MySQL采用插件式架构，InnoDB支持事务、行锁、外键、MVCC和崩溃恢复，优于MyISAM。 索引：B+树是主流选择，支持高效范围查询和排序，树高低减少IO。InnoDB聚簇索引叶子节点存完整数据，非聚簇索引存主键值。 MVCC：通过版本链和ReadView实现无锁并发读，RC每次生成新快照，RR复用快照避免不可重复读。 事务特性：ACID中原子性由undo log保]]></description><category></category></item><item><title><![CDATA[高频面试题：]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162555265</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162555265</guid><author>doom_1817</author><pubDate>Fri, 03 Jul 2026 16:20:50 +0800</pubDate><description><![CDATA[本文总结了Java核心面试题，包括基础、集合与并发、并发基础三个部分。在Java基础中，解释了值传递与对象传参的区别，String类的不可变性以及equals()与hashCode()的关系。集合部分对比了ArrayList和LinkedList的适用场景，分析了HashMap线程不安全的原因，并介绍了ConcurrentHashMap在JDK7和8中的优化。并发基础部分比较了synchronized和ReentrantLock的差异，阐述了JMM如何通过happens-before规则保证可见性、有序性和]]></description><category></category></item><item><title><![CDATA[Java 21 新特性实战：虚拟线程（Virtual Threads）入门到精通]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162213239</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162213239</guid><author>doom_1817</author><pubDate>Mon, 22 Jun 2026 23:00:52 +0800</pubDate><description><![CDATA[虚拟线程是 Java 并发编程的一次革命，它让 Java 在云原生时代重新焕发活力。替换线程池为将替换为通过信号量控制对有限资源的访问Java 虚拟线程让"一个请求一个线程"的理想成为现实，赶快在你的项目中体验吧！参考资源Oracle 官方文档 - Virtual Threads。]]></description><category></category></item><item><title><![CDATA[Java 21 虚拟线程(Virtual Threads)深度解析：从原理到生产级实战]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162212834</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162212834</guid><author>doom_1817</author><pubDate>Mon, 22 Jun 2026 22:30:58 +0800</pubDate><description><![CDATA[虚拟线程（Virtual Thread）是JDK 21引入的轻量级线程实现，由JVM管理而非操作系统内核。轻量级：一个JVM可轻松创建数百万个虚拟线程低成本：创建和销毁虚拟线程的开销极低简单模型：采用"每个请求一个线程"的直观编程模型兼容性：完全兼容现有的Thread API和synchronized等同步机制简化编程模型：回归"一个请求一个线程"的直观编程方式极致资源利用：阻塞不再是浪费，操作系统线程100%被有效利用平滑迁移：与现有代码兼容，无需大规模重构。]]></description><category></category></item><item><title><![CDATA[AI Agent 智能体文件系统操作实战：从目录浏览到文件创建完整演示]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162176251</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162176251</guid><author>doom_1817</author><pubDate>Sun, 21 Jun 2026 20:00:38 +0800</pubDate><description><![CDATA[操作类型 | 具体操作 | 工具方法 || ✅ 安全校验 | 查看允许目录 || ✅ 目录浏览 | 列出一级文件夹 || ✅ 目录创建 | 创建新文件夹 || ✅ 文件写入 | 创建并写入 Markdown 文件 || ✅ 文件读取 | 读取文件内容验证 |本文通过一个完整的实操案例，展示了 AI Agent 如何通过 MCP 协议调用 filesystem 工具，在受控目录内完成目录浏览、文件夹创建、文件写入和内容验证等一系列操作。这不仅是技术演示，更是AI Agent 从理论走向实践。]]></description><category></category></item><item><title><![CDATA[Java 21 重磅新特性：虚拟线程（Virtual Threads）实战指南]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/162174444</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/162174444</guid><author>doom_1817</author><pubDate>Sun, 21 Jun 2026 16:30:48 +0800</pubDate><description><![CDATA[虚拟线程是的一种新实现，它是一种用户态线程。与传统的平台线程（Platform Thread，即操作系统内核线程）不同，虚拟线程由 JVM 管理，而不是由操作系统管理。核心概念：操作系统内核线程的包装，属于 heavyweight 资源。JVM 管理的轻量级线程，属于 lightweight 资源。真正执行任务的平台线程。虚拟线程会挂载（Mount）到 Carrier 线程上运行，遇到阻塞操作时会被卸载（Unmount），从而释放 Carrier 线程去执行其他虚拟线程。| 特性 | 说明 |]]></description><category></category></item><item><title><![CDATA[踩坑实录：Integer.toString() 和 String.valueOf() 到底有什么区别？]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/161681177</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/161681177</guid><author>doom_1817</author><pubDate>Thu, 04 Jun 2026 11:47:24 +0800</pubDate><description><![CDATA[文章摘要：本文探讨了Java中Integer.toString()和String.valueOf()在处理int和Integer类型时的差异。当参数为基本类型int时，两者行为一致；但对于包装类Integer，Integer.toString()在参数为null时会抛出NullPointerException，而String.valueOf()会安全返回字符串&quot;null&quot;。文章通过源码分析指出，String.valueOf()通过重载方法实现了空值保护，并介绍了JDK9+对数字转字符串的]]></description><category></category></item><item><title><![CDATA[Java 避坑指南——链式构建链表为何总是“丢失”头节点？]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/161646294</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/161646294</guid><author>doom_1817</author><pubDate>Wed, 03 Jun 2026 10:23:24 +0800</pubDate><description><![CDATA[文章摘要： 在构建单向链表时，开发者常通过链式调用（如new ListNode(1).next(2).next(4)）初始化节点，但可能因方法返回值设计不当导致头节点丢失，仅剩尾节点（如输出4-&gt;4而非完整链表）。问题根源在于链式方法返回了新节点而非头节点，使得中间节点因无引用被GC回收。解决方案包括：1）手动维护头节点引用；2）改造append方法始终返回头节点；3）使用工厂方法配合可变参数一键生成链表。核心在于保证链式操作后仍能访问结构入口，避免因引用语义误解引发隐蔽Bug。]]></description><category></category></item><item><title><![CDATA[Java 21 虚拟线程（Virtual Threads）深度解析：从原理到实战，彻底告别线程池噩梦]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/161460430</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/161460430</guid><author>doom_1817</author><pubDate>Wed, 27 May 2026 19:00:59 +0800</pubDate><description><![CDATA[虚拟线程是的一个轻量级实现，由 JVM 管理而非操作系统。它可以被理解为一种用户态线程（User-mode Thread），成千上万个虚拟线程可以运行在少数的平台线程之上。虚拟线程是 Java 并发编程的一次革命。它让我们以同步的方式编写异步代码，大幅降低了高并发 I/O 应用的开发复杂度。性能：数十万甚至数百万的并发连接不再是梦想简洁：回归简单的同步代码，无需复杂的回调或响应式框架兼容：与现有 Java 生态完全兼容，现有的线程池代码可以逐步迁移。]]></description><category></category></item><item><title><![CDATA[RocketMQ]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/160977393</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/160977393</guid><author>doom_1817</author><pubDate>Mon, 11 May 2026 12:00:03 +0800</pubDate><description><![CDATA[RocketMQ核心原理与高可用设计 摘要：RocketMQ采用分布式架构设计，通过NameServer实现路由发现，Broker采用CommitLog顺序写入与ConsumeQueue索引分离的存储机制。消息统一写入CommitLog文件，通过顺序写盘提升IO性能，同时构建ConsumeQueue索引实现高效消费。系统通过主从同步复制（SYNC_MASTER/ASYNC_MASTER）和多种刷盘策略保障可靠性，生产端支持容错机制，消费端实现消息重试与幂等处理。NameServer专用于内部路由管理，不同于]]></description><category></category></item><item><title><![CDATA[LeetCode 28 题解惑：从 String.indexOf 探究 JDK 字符串匹配的底层实现]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/158266322</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/158266322</guid><author>doom_1817</author><pubDate>Sat, 21 Feb 2026 21:59:16 +0800</pubDate><description><![CDATA[本文记录了探究 Java String.indexOf 高效底层机制的学习过程。解答 LeetCode 28 题时，我发现其看似 $O(m \times n)$ 的暴力匹配速度极快。查阅源码得知这源于两大工程优化：一是 Java 9 引入紧凑字符串，改用 byte[] 存储并通过 coder 分流 Latin-1 编码，大幅提升遍历效率并节省内存；二是 @HotSpotIntrinsicCandidate 注解表明 JVM 底层使用了 CPU 的 SIMD 指令集进行硬件级并发比对。相较于需预处理前缀表的 ]]></description><category></category></item><item><title><![CDATA[Shiro安全框架：核心组件全解析]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/157295401</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/157295401</guid><author>doom_1817</author><pubDate>Fri, 23 Jan 2026 23:00:00 +0800</pubDate><description><![CDATA[Apache Shiro安全框架的核心组件包括Subject、SecurityManager和Realm。Subject作为开发者交互接口，封装了身份认证、访问控制和会话管理等功能，通过SecurityUtils获取实例。SecurityManager是安全决策中心，基于权限进行访问控制，通过策略文件配置细粒度权限。Realm作为数据桥梁，连接应用与安全数据源，负责身份认证和授权信息获取。三者协同工作：Subject委托请求给SecurityManager，后者通过Realm获取安全数据进行决策。]]></description><category></category></item><item><title><![CDATA[从 MVC 到系统设计]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/156837078</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/156837078</guid><author>doom_1817</author><pubDate>Sun, 11 Jan 2026 23:05:23 +0800</pubDate><description><![CDATA[MVC架构是一种经典的分层设计模式，将应用程序分为模型（Model）、视图（View）和控制器（Controller）三大组件。在企业级架构中，MVC通常作为表现层模式，与分层架构结合使用：接口层实现Controller，应用层处理业务逻辑（Model），领域层提供数据模型，基础设施层提供技术支撑。这种组合既保持了MVC的解耦优势，又增强了系统的可扩展性和可维护性。]]></description><category></category></item><item><title><![CDATA[Java 反射核心 API 综合应用：从类信息解析到对象动态操作]]></title><link>https://blog.youkuaiyun.com/doom_1817/article/details/155201857</link><guid>https://blog.youkuaiyun.com/doom_1817/article/details/155201857</guid><author>doom_1817</author><pubDate>Tue, 25 Nov 2025 00:00:00 +0800</pubDate><description><![CDATA[涵盖反射获取 Class 对象、构造方法、成员变量、成员方法的核心知识点，综合考察反射机制的完整使用流程]]></description><category></category></item></channel></rss>