<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[留白Blank的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Z_ZX19</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Z_ZX19]]></copyright><item><title><![CDATA[从“手搓工具”到“MCP”：AI Agent 调用工具的演进之路]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162832401</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162832401</guid><author>Z_ZX19</author><pubDate>Mon, 13 Jul 2026 11:03:14 +0800</pubDate><description><![CDATA[今天想跟大家聊一个刚入门的朋友觉得有点玄乎的概念——MCP（模型上下文协议）。
别被这名字吓到。如果你已经了解或者接触过AI Agent开发，八成自己动手写过“工具调用”。我们顺着这条路走走看，你就能明白MCP到底解决了什么问题。]]></description><category></category></item><item><title><![CDATA[从 BeanUtils 到 MapStruct：一个关于“偷懒”的技术演进故事]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162765913</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162765913</guid><author>Z_ZX19</author><pubDate>Sun, 12 Jul 2026 15:16:37 +0800</pubDate><description><![CDATA[本文介绍了Java对象属性拷贝的两种方案：BeanUtils和MapStruct。文章首先展示了新手常用的BeanUtils.copyProperties方法，指出其在项目初期简洁高效，但在高并发场景下因反射机制导致性能瓶颈（可能占用30% CPU时间），并存在浅拷贝问题。随后重点解析MapStruct的优势：编译期生成代码（无反射开销）、支持深拷贝、类型安全，并通过案例对比两者性能差异（MapStruct接近原生get/set速度，比BeanUtils快4-10倍）等等....]]></description><category></category></item><item><title><![CDATA[搞定 Jackson：SpringBoot默认的Json工具]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162751341</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162751341</guid><author>Z_ZX19</author><pubDate>Fri, 10 Jul 2026 10:00:42 +0800</pubDate><description><![CDATA[本文介绍了Java中处理JSON的演进过程，从早期手动拼接字符串到使用专业工具库。重点讲解了Jackson的核心用法，包括： 基础使用：通过ObjectMapper实现对象与JSON互转 常用注解：@JsonProperty、@JsonIgnore、@JsonFormat等字段控制技巧 高级功能： 泛型反序列化使用TypeReference 多态类型处理通过@JsonTypeInfo 自定义序列化器实现数据脱敏和Long精度保护 @JsonAnySetter处理动态属性]]></description><category></category></item><item><title><![CDATA[Lombok 透明小助手]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162731989</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162731989</guid><author>Z_ZX19</author><pubDate>Fri, 10 Jul 2026 09:16:29 +0800</pubDate><description><![CDATA[摘要： Java开发者常因繁琐的模板代码（如getter/setter、toString等）困扰，Lombok通过编译期自动生成代码解决了这一问题。文章详解Lombok的核心功能。]]></description><category></category></item><item><title><![CDATA[CAS 机制]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162721133</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162721133</guid><author>Z_ZX19</author><pubDate>Thu, 09 Jul 2026 10:29:14 +0800</pubDate><description><![CDATA[CAS（Compare-And-Swap）是一种乐观锁机制，通过硬件级原子操作实现线程安全。相比synchronized阻塞式锁，CAS采用&quot;尝试-失败重试&quot;策略：读取当前值，计算新值，当且仅当原值未被修改时才更新。这避免了线程阻塞但可能导致ABA问题（通过版本号解决）、CPU空转（使用LongAdder分流）和单变量限制（组合操作用AtomicReference）。]]></description><category></category></item><item><title><![CDATA[共享模型之管程：synchronized]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162703196</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162703196</guid><author>Z_ZX19</author><pubDate>Thu, 09 Jul 2026 09:02:39 +0800</pubDate><description><![CDATA[本文探讨了Java多线程编程中的管程（Monitor）概念及其实现方式synchronized。通过一个计数器的例子，展示了多线程环境下因指令交错导致的竞态条件问题，并解释了临界区和原子操作的重要性。文章详细介绍了如何通过synchronized关键字实现对临界区的互斥访问，包括对象锁、方法锁和静态方法锁的区别，并通过&quot;八锁&quot;案例分析了不同锁对象的互斥关系。此外，还讨论了变量线程安全性的判断规则、线程安全类的使用注意事项，以及不可变类的天然线程安全特性。最后，文章以银行柜台为比喻形象解释]]></description><category></category></item><item><title><![CDATA[聊聊Java线程：从“一个人干所有活”到“团队协作”]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162699223</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162699223</guid><author>Z_ZX19</author><pubDate>Wed, 08 Jul 2026 15:35:16 +0800</pubDate><description><![CDATA[本文深入讲解了Java线程的核心概念与应用，重点包括： 线程创建方式：继承Thread类、实现Runnable接口、Callable+FutureTask组合，分析各自适用场景和返回值处理差异。 线程协作机制： join()实现主线程等待、sleep()定时暂停但保持锁、yield()礼貌让出CPU、wait()/notify()基于条件等待的线程通信、线程中断原理： interrupt()作为信号机制的本质、处理sleep中断时标记被清除的陷阱、两阶段终止模式的实现关键、线程状态转换、守护线程特性]]></description><category></category></item><item><title><![CDATA[JUC并发基本概念]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162688576</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162688576</guid><author>Z_ZX19</author><pubDate>Wed, 08 Jul 2026 10:42:59 +0800</pubDate><description><![CDATA[这篇文章介绍了Java并发编程的基础知识，主要包括： 线程安全问题的产生原因：通过计数器示例展示多线程下count++操作的非原子性导致的结果不一致问题。 解决方案对比： synchronized同步方法（悲观锁） AtomicInteger原子类（基于CAS的乐观锁） 进程与线程的核心概念、并发与并行的区别]]></description><category></category></item><item><title><![CDATA[CodeGraph：为 AI Agent 打造的“代码地图”]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162657875</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162657875</guid><author>Z_ZX19</author><pubDate>Tue, 07 Jul 2026 10:48:34 +0800</pubDate><description><![CDATA[CodeGraph是一款本地优先的代码智能工具，通过解析代码AST构建知识图谱，提升AI编程助手(如ClaudeCode)的代码检索效率。核心功能包括：查询函数调用链、分析修改影响范围、生成任务上下文等。优势在于可减少71%工具调用次数、降低57%Token消耗，且完全本地运行保障数据隐私。支持Node.js安装，通过简单命令即可初始化项目索引，与主流AI编程工具无缝集成。特别建议全栈项目在前后端子目录分别初始化，避免索引混乱。典型应用场景包括代码搜索、依赖分析、架构概览等，大幅提升开发效率。]]></description><category></category></item><item><title><![CDATA[Prompt 提示词工程]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162639313</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162639313</guid><author>Z_ZX19</author><pubDate>Mon, 06 Jul 2026 17:23:12 +0800</pubDate><description><![CDATA[摘要：提示词工程方法综述 本文系统梳理了多种提示词工程技术，旨在优化大语言模型（LLM）的响应质量与推理能力。]]></description><category></category></item><item><title><![CDATA[模型参数设置]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162638997</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162638997</guid><author>Z_ZX19</author><pubDate>Mon, 06 Jul 2026 17:17:35 +0800</pubDate><description><![CDATA[摘要：大模型通过参数（Temperature、Top_p、Top_k）控制文本生成。Temperature调节概率分布的陡峭程度，低温输出保守，高温增加随机性；Top_p（核采样）动态筛选高概率词集，避免低质量输出；Top_k固定候选词数量，但灵活性不如Top_p。其他参数如重复惩罚可优化结果。不同场景需调整参数组合，例如代码生成宜用低温（0~0.2），创意写作可调高温（1.2+）配合Top_p=0.9~1.0。]]></description><category></category></item><item><title><![CDATA[Java 集合精讲：理解原理]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162517517</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162517517</guid><author>Z_ZX19</author><pubDate>Thu, 02 Jul 2026 13:29:18 +0800</pubDate><description><![CDATA[本文深入解析Java集合框架的核心原理，重点涵盖底层数据结构和扩容机制，不涉及并发安全集合。主要内容包括： 集合框架体系：分为Collection（List、Set、Queue）和Map两大体系]]></description><category></category></item><item><title><![CDATA[Java四大内部类用法精讲]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/162278327</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/162278327</guid><author>Z_ZX19</author><pubDate>Wed, 24 Jun 2026 17:59:06 +0800</pubDate><description><![CDATA[本文系统介绍了Java内部类的概念、分类及使用场景。内部类分为局部内部类（含匿名内部类）和成员内部类（含静态内部类），具有访问外部类私有成员、隐藏实现细节等优势。局部内部类定义在方法/代码块中，不能添加访问修饰符；匿名内部类适合一次性使用场景；成员内部类依附外部类实例；静态内部类独立于外部类实例，常用于Builder模式等场景。文章详细分析了各类内部类的语法特性、访问规则及典型应用，并指出潜在的内存泄漏风险和JDK8后的Lambda优化方案，为开发者提供了全面的内部类使用指南。]]></description><category></category></item><item><title><![CDATA[Java 接口精讲：基于 JDK 版本演进的完整指南]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/161919689</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/161919689</guid><author>Z_ZX19</author><pubDate>Fri, 12 Jun 2026 11:22:42 +0800</pubDate><description><![CDATA[本文系统梳理了Java接口的演进历程和核心特性。从JDK7仅支持抽象方法和常量，到JDK8引入默认方法、静态方法和函数式接口（配合Lambda表达式），再到JDK9支持私有方法，接口功能不断增强。文章通过代码示例演示了各版本特性，并对比了接口与抽象类的适用场景：优先使用接口实现多态和行为规范，仅在需要维护对象状态或更细粒度访问控制时选择抽象类。最后通过支付系统案例展示了接口的实际应用，帮助读者深入理解接口在Java编程中的核心地位。]]></description><category></category></item><item><title><![CDATA[Java抽象类详解]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/161916502</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/161916502</guid><author>Z_ZX19</author><pubDate>Fri, 12 Jun 2026 10:06:41 +0800</pubDate><description><![CDATA[本文深入讲解了Java抽象类的核心概念与设计思想。通过代码示例详细介绍了抽象类的语法特性：1）使用abstract关键字定义，可包含成员变量、构造器、抽象方法（无实现）和普通方法；2）不能被实例化，子类必须实现所有抽象方法（除非子类也是抽象类）；3）构造器用于子类初始化。文章通过动物叫声和饮料制作两个案例，展示了抽象类在代码复用、约束子类行为以及模板方法模式中的应用价值，特别是如何通过抽象方法强制子类实现特定功能，同时保留通用的方法流程。]]></description><category></category></item><item><title><![CDATA[Java多态的转型]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/161899798</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/161899798</guid><author>Z_ZX19</author><pubDate>Thu, 11 Jun 2026 17:45:28 +0800</pubDate><description><![CDATA[Java中的向上转型和向下转型是多态性的重要实现方式。向上转型是子类对象隐式转为父类引用，自动完成且安全，但只能访问父类成员（重写方法除外）；向下转型是父类引用显式转为子类类型，需强制转换且存在风险，必须用instanceof检查。向上转型实现代码通用性（如支付系统处理多种支付方式），向下转型用于调用子类特有方法（如图形系统调用圆形填充功能）。关键区别在于：向上转型是安全的隐式转换，向下转型是可能不安全的显式操作。使用时需注意成员变量无多态性、静态方法不受影响等特性，向下转型前务必进行类型检查。]]></description><category></category></item><item><title><![CDATA[Java 浅拷贝与深拷贝详解]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/161885800</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/161885800</guid><author>Z_ZX19</author><pubDate>Thu, 11 Jun 2026 10:52:20 +0800</pubDate><description><![CDATA[摘要： 浅拷贝仅复制对象的第一层字段（基本类型复制值，引用类型复制地址），导致原对象和拷贝对象共享内部引用对象，修改会相互影响；深拷贝则递归复制所有引用对象，生成完全独立的新对象。代码演示中，浅拷贝通过Object.clone()实现，而深拷贝可通过重写clone()方法、使用拷贝构造器或序列化实现。深拷贝安全性高但性能较低，适合需要对象隔离的场景；浅拷贝高效但需注意共享引用风险。扩展内容涵盖不可变类的特殊行为、序列化原理及transient关键字的作用。]]></description><category></category></item><item><title><![CDATA[Java的值传递与“引用传递”]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/161835129</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/161835129</guid><author>Z_ZX19</author><pubDate>Tue, 09 Jun 2026 16:42:40 +0800</pubDate><description><![CDATA[Java参数传递机制详解：只有值传递，没有引用传递。对于基本类型，传递的是数值拷贝；对于引用类型，传递的是对象地址值的拷贝。通过代码验证发现：1）修改对象属性会影响原对象；2）改变形参引用指向不会影响实参。关键区别在于：值传递传递的是拷贝值（包括地址值），而非原始变量本身。因此Java本质是值传递机制，引用类型传递的是地址值的副本。]]></description><category></category></item><item><title><![CDATA[Flyway-数据库的“版本控制系统”]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/161829131</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/161829131</guid><author>Z_ZX19</author><pubDate>Tue, 09 Jun 2026 13:50:07 +0800</pubDate><description><![CDATA[本文介绍了Flyway数据库迁移工具的基本原理及SpringBoot集成实践。Flyway通过版本化SQL脚本实现数据库变更管理，自动维护flyway_schema_history表记录执行状态，确保多环境数据库结构一致。]]></description><category></category></item><item><title><![CDATA[SpringCloud微服务项目中自定义异常处理器失效]]></title><link>https://blog.youkuaiyun.com/Z_ZX19/article/details/145504270</link><guid>https://blog.youkuaiyun.com/Z_ZX19/article/details/145504270</guid><author>Z_ZX19</author><pubDate>Fri, 07 Feb 2025 23:03:37 +0800</pubDate><description><![CDATA[SpringCloud微服务项目中自定义异常处理器失效的处理方案]]></description><category></category></item></channel></rss>