<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xtreallydance的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xtreallydance</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xtreallydance]]></copyright><item><title><![CDATA[【黑马RAG与Agent智能体项目】（二）提示词工程]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/157402073</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/157402073</guid><author>xtreallydance</author><pubDate>Mon, 26 Jan 2026 21:55:51 +0800</pubDate><description><![CDATA[本文介绍了提示词工程与Few-Shot学习在金融NLP中的应用，通过三个实战案例展示了优化技巧。主要内容包括：1）零样本与少样本学习的区别，前者依赖预训练知识，后者通过示例提升准确性；2）提示词工程四要素：角色定位、任务描述、示例数据和格式约束；3）金融文本分类案例，演示了如何构建消息结构；4）金融信息抽取案例，展示结构化数据提取方法。文章强调Few-Shot示例对提升模型表现的关键作用，并提供了完整的代码实现和消息结构解析。]]></description><category></category></item><item><title><![CDATA[【黑马RAG与Agent智能体项目】（一）OpenAI库基础使用]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/157258146</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/157258146</guid><author>xtreallydance</author><pubDate>Thu, 22 Jan 2026 17:28:19 +0800</pubDate><description><![CDATA[本文介绍了OpenAI库在阿里云百炼平台上的使用教程，包含API调用、流式输出和历史消息管理三大核心功能。内容涵盖：1) API Key配置与基础调用；2) 多轮对话实现方法；3) 流式输出的实时响应技巧；4) 通过历史消息实现上下文记忆。文章提供了可直接运行的代码示例，并总结了最佳实践建议，包括API安全、性能优化和错误处理。适合开发者快速掌握OpenAI库的关键用法，为Agent开发和大模型应用奠定基础。]]></description><category></category></item><item><title><![CDATA[【零碎小知识点 】（七）FutureTask 和 CompletableFuture 的使用]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/151234504</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/151234504</guid><author>xtreallydance</author><pubDate>Sat, 06 Sep 2025 00:34:18 +0800</pubDate><description><![CDATA[特性FutureTask抽象级别低级别，一个可运行的异步任务高级别，一个可组合的异步计算阶段结果获取阻塞式get()支持阻塞get()，更支持非阻塞回调任务组合很难，需要手动编码非常强大且简单 (等)异常处理需要在Callable内部处理，或通过get()抛出链式异常处理 (handle线程控制需手动创建线程或线程池默认使用，也可指定自定义线程池手动完成不支持支持 (complete如果你只是需要一个非常简单的、一次性的异步任务，并且不介意用get()阻塞获取结果，FutureTask。]]></description><category></category></item><item><title><![CDATA[【零碎小知识点 】（六）多线程交替输出奇数偶数]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/151216282</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/151216282</guid><author>xtreallydance</author><pubDate>Fri, 05 Sep 2025 10:43:50 +0800</pubDate><description><![CDATA[【代码】【零碎小知识点 】（六）多线程交替输出奇数偶数。]]></description><category></category></item><item><title><![CDATA[【零碎小知识点 】（五）筛选字符串列表中长度大于6的字符串并按长度降序排序]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/151214849</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/151214849</guid><author>xtreallydance</author><pubDate>Fri, 05 Sep 2025 10:15:29 +0800</pubDate><description><![CDATA[这两种方法都会产生相同的结果，但第二种方法使用了更多的内置工具方法，通常被认为更符合函数式编程的风格。：Java 8引入了函数式接口（只有一个抽象方法的接口），允许使用Lambda表达式作为实现。：Java编译器能够根据上下文推断Lambda表达式的参数类型。：Stream API的设计允许链式调用，使代码更流畅易读。：提供了一种更简洁的方式来表示已经存在的方法。]]></description><category></category></item><item><title><![CDATA[【零碎小知识点 】（四） Java多线程编程深入与实践]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/151086996</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/151086996</guid><author>xtreallydance</author><pubDate>Mon, 01 Sep 2025 23:32:19 +0800</pubDate><description><![CDATA[这篇文章介绍了Java线程的基础知识和线程安全问题。主要内容包括：1) 线程创建的5种方式（继承Thread类、实现Runnable/Callable接口、Lambda表达式、线程池）；2) 线程生命周期和状态转换（NEW、RUNNABLE、TIMED_WAITING、WAITING、TERMINATED）；3) 进程与线程的区别；4) 线程安全的三大问题：原子性问题（count++非原子操作）、可见性问题（volatile变量保证可见性）、有序性问题（指令重排导致意外结果）。通过代码示例演示了各种线程操作]]></description><category></category></item><item><title><![CDATA[【零碎小知识点 】（三）Java集合框架深入与实践]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/151075875</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/151075875</guid><author>xtreallydance</author><pubDate>Mon, 01 Sep 2025 19:45:54 +0800</pubDate><description><![CDATA[本文深入探讨了Java集合框架的核心组件，重点分析了List接口及其实现类。通过代码示例展示了ArrayList、LinkedList和Vector的基本操作，包括元素增删改查、遍历方式等。文章特别提供了简化版ArrayList的自定义实现，模拟了动态数组扩容机制，揭示了底层数组结构的运作原理。此外，还比较了不同List实现的性能特点，如ArrayList的随机访问优势和LinkedList的插入删除效率。这些内容为开发者理解和使用Java集合框架提供了实用指导，尤其适合需要深入理解集合内部机制的读者。]]></description><category></category></item><item><title><![CDATA[【零碎小知识点 】（二）Java基础与常用API编码实践]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/151074385</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/151074385</guid><author>xtreallydance</author><pubDate>Mon, 01 Sep 2025 16:18:45 +0800</pubDate><description><![CDATA[本文提供了Java基础语法和面向对象编程的实践代码示例，帮助提高编码能力。内容包括： 基本数据类型（byte、short、int等）和流程控制结构（if-else、switch、循环）的示例代码 面向对象编程实践： 封装示例：BankAccount类展示属性封装和方法实现 继承与多态：Animal父类与Dog/Cat子类的继承关系展示 抽象类与接口：Shape抽象类和Drawable接口的实现 内部类：成员内部类、静态内部类和方法内部类的使用 代码示例详细展示了Java核心语法特性和面向对象编程的各种概念，]]></description><category></category></item><item><title><![CDATA[【零碎小知识点 】（一）String为什么不可变]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/151071035</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/151071035</guid><author>xtreallydance</author><pubDate>Mon, 01 Sep 2025 15:02:20 +0800</pubDate><description><![CDATA[String的不可变性是指一旦创建，其字符序列不可更改。实现方式包括：final类防止继承、private final字符数组确保引用不变、无修改数组内容的方法。这种设计带来四大优势：安全性（防止参数被篡改）、性能优化（支持字符串常量池重用）、哈希值缓存（提升集合操作效率）、线程安全（无需同步）。不可变性使String对象像刻字的石头，修改只能创建新对象，而常量池机制可安全复用相同字符串，节省内存。]]></description><category></category></item><item><title><![CDATA[【LeetCode 热题 100】（八）二叉树]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/150400393</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/150400393</guid><author>xtreallydance</author><pubDate>Sun, 17 Aug 2025 22:16:29 +0800</pubDate><description><![CDATA[二叉树递归问题解析 1. 中序遍历（94题） 方法：递归实现&quot;左-根-右&quot;遍历顺序 关键点： 递归终止条件：节点为null时返回 按顺序处理左子树、当前节点、右子树 时间复杂度：O(n)，空间复杂度O(h)（树高） 2. 最大深度（104题） 方法：递归计算左右子树高度，取最大值+1 关键点： 空节点返回0 非空节点返回max(左高,右高)+1 时间复杂度：O(n)，空间复杂度O(h) 3. 翻转二叉树（226题） 方法：递归交换每个节点的左右子树 关键点： 后序遍历：先处理子树再交换 ]]></description><category></category></item><item><title><![CDATA[【LeetCode 热题 100】（七）链表]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/150111509</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/150111509</guid><author>xtreallydance</author><pubDate>Mon, 11 Aug 2025 22:20:18 +0800</pubDate><description><![CDATA[**本文解析了两个经典链表问题的解法。相交链表问题采用双指针路径补偿法，通过让指针分别遍历两个链表来消除长度差，最终在交点或终点同步相遇，实现O(m+n)时间复杂度和O(1)空间复杂度。反转链表问题使用三指针迭代法，通过动态修改节点指向实现原地反转，同样保持O(n)时间复杂度和O(1)空间复杂度。两种解法均体现了链表问题中指针操作的精妙性，无需额外空间即可高效解决问题。]]></description><category></category></item><item><title><![CDATA[【LeetCode 热题 100】（六）矩阵]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/150108837</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/150108837</guid><author>xtreallydance</author><pubDate>Sat, 09 Aug 2025 16:20:11 +0800</pubDate><description><![CDATA[本文解析了两个矩阵操作算法：矩阵置零和螺旋矩阵遍历。 矩阵置零：通过标记法实现原地修改。使用行/列标记数组记录含0位置，第一次遍历标记，第二次遍历置零。时间复杂度O(mn)，空间复杂度O(m+n)。示例展示了3x3矩阵的置零过程。 螺旋矩阵：采用边界收缩法模拟顺时针遍历。定义left/right/top/bottom四个边界，依次处理外圈后向内收缩。添加内圈条件避免重复遍历，时间复杂度O(mn)。通过3x3矩阵示例演示了完整的螺旋遍历过程。 两个算法都体现了矩阵操作的典型思路：矩阵置零侧重标记和批量修改，螺]]></description><category></category></item><item><title><![CDATA[【LeetCode 热题 100】（五）普通数组]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/149866069</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/149866069</guid><author>xtreallydance</author><pubDate>Sat, 09 Aug 2025 14:25:02 +0800</pubDate><description><![CDATA[摘要 最大子数组和（Kadane算法） 使用动态规划解决最大连续子数组和问题： 定义pre记录以当前元素结尾的最大和，ans记录全局最大值 遍历时比较&quot;从当前元素重新开始&quot;或&quot;延续前序子数组&quot;两种选择 时间复杂度O(n)，空间复杂度O(1) 示例：数组[-2,1,-3,4,-1,2,1]最大和为6（子数组[4,-1,2,1]） 合并区间算法 通过排序和线性扫描合并重叠区间： 先按区间左端点排序 遍历时比较当前区间与已合并区间，决定合并或新建区间 时间复杂度O(n lo]]></description><category></category></item><item><title><![CDATA[【LeetCode 热题 100】（四）子串]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/149865559</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/149865559</guid><author>xtreallydance</author><pubDate>Sat, 02 Aug 2025 22:46:50 +0800</pubDate><description><![CDATA[本文介绍了使用前缀和与哈希表统计和为K的子数组数量的高效算法。通过维护前缀和与哈希表（记录各前缀和出现次数），算法在O(n)时间内解决问题：遍历时计算当前前缀和pre，检查哈希表中是否存在pre-k的键，存在则累加对应值到结果。初始化时需设置map.put(0,1)以处理从数组起始开始的子数组。该方法相比暴力解法显著优化了时间复杂度，适用于含正负数的数组，且可扩展解决子数组长度、乘积等变种问题。示例展示了nums=[1,1,1],k=2时如何正确统计出两个有效子数组的过程。]]></description><category></category></item><item><title><![CDATA[【LeetCode 热题 100】（三）滑动窗口]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/149861957</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/149861957</guid><author>xtreallydance</author><pubDate>Sat, 02 Aug 2025 18:25:14 +0800</pubDate><description><![CDATA[滑动窗口算法精要 无重复字符最长子串 使用双指针维护滑动窗口，HashSet存储当前字符 左指针移动时移除左侧字符，右指针扩展至重复字符 时间复杂度O(n)，空间复杂度O(字符集大小) 示例：s=&quot;pwwkew&quot; → 最长&quot;wke&quot;(长度3) 字母异位词查找 固定长度滑动窗口匹配字符频率 双频率数组统计字符出现次数 窗口滑动时更新频率：移除左边界，添加右边界 时间复杂度O(n)，空间复杂度O(1) 示例：s=&quot;abab&quot;, p=&quot;ab&q]]></description><category></category></item><item><title><![CDATA[【黑马SpringCloud微服务开发与实战】（九）elasticsearch基础]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/149756682</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/149756682</guid><author>xtreallydance</author><pubDate>Wed, 30 Jul 2025 16:26:21 +0800</pubDate><description><![CDATA[Elasticsearch入门指南摘要：本文介绍了Elasticsearch(ES)的安装与基本使用。通过Docker快速部署ES(7.12.1)和Kibana可视化工具，配置单节点模式和网络连接。详细讲解了倒排索引原理、IK中文分词器的安装与使用，以及索引库和文档的CRUD操作。最后展示了Java客户端RestHighLevelClient的初始化步骤，包括Maven依赖配置和连接建立方法。内容涵盖ES核心概念、Mapping映射属性设置，以及批量文档处理等实用技巧，适合开发者快速上手ES。]]></description><category></category></item><item><title><![CDATA[【LeetCode 热题 100】（二）双指针]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/149750448</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/149750448</guid><author>xtreallydance</author><pubDate>Tue, 29 Jul 2025 18:02:34 +0800</pubDate><description><![CDATA[解题思路摘要 移动零：通过双指针法，左指针标记非零元素位置，右指针遍历数组。遇到非零元素时交换到左指针位置，保证所有零被移动到末尾。时间复杂度O(n)，空间复杂度O(1)。 盛水最多的容器：使用双指针从数组两端向中间扫描，每次移动较短的边并计算当前面积，更新最大值。确保在O(n)时间内找到最大容量，空间复杂度O(1)。 三数之和：先排序数组，固定一个数后转化为两数之和问题。使用双指针寻找满足条件的组合，通过跳过重复元素避免重复解。时间复杂度O(n²)，空间复杂度O(1)或O(n)（取决于排序实现）。]]></description><category></category></item><item><title><![CDATA[【LeetCode 热题 100】（一）哈希]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/149724754</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/149724754</guid><author>xtreallydance</author><pubDate>Mon, 28 Jul 2025 21:38:18 +0800</pubDate><description><![CDATA[128. 最长连续序列 - 摘要 解题思路： 使用哈希集合存储所有数字，遍历集合中的每个元素，寻找连续序列的起始点（即当前数字的前驱不在集合中），然后向后统计连续序列长度。通过跳过非起始点优化效率，确保算法时间复杂度为 O(n)。 关键步骤： 将所有数字存入哈希集合（O(1) 查询） 遍历集合，当 num-1 不存在时，以 num 为起点向后扩展连续序列 更新全局最大长度 max_long 优化点： 仅对序列起始点进行扩展，避免重复计算 哈希集合去重，减少无效操作 复杂度： 时间：O(n)（每个元素最多被访]]></description><category></category></item><item><title><![CDATA[【黑马SpringCloud微服务开发与实战】（八）MQ高级]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/149691982</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/149691982</guid><author>xtreallydance</author><pubDate>Mon, 28 Jul 2025 15:56:34 +0800</pubDate><description><![CDATA[本文介绍了消息队列（MQ）的可靠性机制及延迟消息实现方案。主要内容包括：1）发送者可靠性机制，通过重连和确认机制（publisher confirm/return）确保消息投递；2）MQ持久化配置，包括交换机、队列和消息的持久化；3）LazyQueue机制解决消息堆积问题；4）消费者可靠性策略，包含确认机制、失败重试和业务幂等处理；5）延迟消息实现，通过死信交换机和TTL设置实现消息延迟投递。文中提供了Spring Boot整合RabbitMQ的配置示例和代码实现。]]></description><category></category></item><item><title><![CDATA[【黑马SpringCloud微服务开发与实战】（七）MQ入门]]></title><link>https://blog.youkuaiyun.com/xtreallydance/article/details/149597604</link><guid>https://blog.youkuaiyun.com/xtreallydance/article/details/149597604</guid><author>xtreallydance</author><pubDate>Thu, 24 Jul 2025 17:53:29 +0800</pubDate><description><![CDATA[本文介绍了MQ（消息队列）的基础知识与应用实践。课程内容涵盖同步/异步调用优缺点对比、RabbitMQ技术选型、Docker环境部署（包含端口配置与权限管理）、Java客户端快速入门（含SpringBoot集成）、数据隔离实现等核心知识点。通过代码示例演示了消息队列的发布/订阅模式，并提供了详细的POM文件配置说明。课程采用RabbitMQ 3.8-management版本，重点讲解了生产环境中的用户权限控制、虚拟主机隔离等实用技巧，适合开发者快速掌握MQ在分布式系统中的实际应用。]]></description><category></category></item></channel></rss>