<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaoye220911的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaoye220911</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaoye220911]]></copyright><item><title><![CDATA[Java关键字static详解（修饰变量/方法/代码块/内部类/导包、初始化顺序、继承与多态坑点）]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162995696</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162995696</guid><author>xiaoye220911</author><pubDate>Mon, 20 Jul 2026 20:35:50 +0800</pubDate><description><![CDATA[本文系统剖析Java中static关键字的五大应用场景（静态变量、方法、代码块、内部类、导包），揭示其核心特性——类级别共享、全局唯一、类加载初始化。通过代码实例详解静态资源与实例资源的区别，深入分析初始化顺序（静态>普通>构造方法）。针对面试高频考点，重点解析static在继承中的表现（可继承但不可重写、无多态性），并警示静态变量在多线程环境下的安全隐患。最后总结static的底层机制，包括内存管理、多态失效原因及并发风险，帮助开发者彻底掌握这一关键字的正确使用场景与避坑指南。]]></description><category></category></item><item><title><![CDATA[Java集合高阶：HashMap底层实现原理（JDK1.7 vs JDK1.8）哈希冲突与线程不安全]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162976176</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162976176</guid><author>xiaoye220911</author><pubDate>Sat, 18 Jul 2026 13:48:30 +0800</pubDate><description><![CDATA[本文全面解析Java中HashMap的核心原理与版本差异，重点分析JDK1.7和1.8的实现优化。JDK1.7采用数组+链表结构，存在哈希冲突导致链表过长、头插法引发死循环的问题；JDK1.8引入红黑树结构，改为尾插法，在链表长度≥8且容量≥64时自动树化，将查询效率从O(n)优化为O(logn)。文章详细讲解HashMap的哈希扰动、扩容机制、线程不安全问题及解决方案，通过代码示例演示null键存储和扩容规则，并对比两个版本的核心差异，帮助开发者深入理解HashMap的设计思想与应用场景。]]></description><category></category></item><item><title><![CDATA[Java数组：特性、初始化、遍历、多维数组与常用操作]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162995266</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162995266</guid><author>xiaoye220911</author><pubDate>Sat, 18 Jul 2026 13:47:13 +0800</pubDate><description><![CDATA[本文系统讲解了Java数组的核心知识点，包括数组的定义、特点、声明与初始化方式、默认值规则、元素访问与修改、长度属性与越界异常处理。详细介绍了数组遍历的两种方式（普通for循环和增强for循环），以及二维数组的概念与遍历方法。同时讲解了Arrays工具类提供的常用数组操作方法（排序、复制、查找等），并指出了数组的局限性（长度固定、增删效率低）及解决方案（使用ArrayList动态数组）。全文内容全面，适合Java初学者系统学习数组基础知识，也可作为面试复习资料。]]></description><category></category></item><item><title><![CDATA[Java集合：ArrayList与LinkedList区别、原理、性能场景]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162976113</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162976113</guid><author>xiaoye220911</author><pubDate>Fri, 17 Jul 2026 19:22:09 +0800</pubDate><description><![CDATA[本文深入对比Java集合中ArrayList和LinkedList的核心差异。ArrayList基于动态数组实现，查询快(O(1))但中间增删慢；LinkedList基于双向链表实现，中间增删快(O(1))但查询慢(O(n))。数组内存连续无冗余，链表每个节点额外存储指针地址。开发选型应遵循&quot;查多删少用数组，删多查少用链表&quot;原则，90%场景优先使用ArrayList，仅在频繁中间增删或实现队列结构时选用LinkedList。二者均非线程安全，并发场景需使用线程安全替代方案。]]></description><category></category></item><item><title><![CDATA[Java集合框架：核心接口、继承体系、特性区别与代码实战]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162976103</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162976103</guid><author>xiaoye220911</author><pubDate>Fri, 17 Jul 2026 19:19:42 +0800</pubDate><description><![CDATA[本文解析Java集合框架核心架构，分为Collection和Map两大体系。Collection包含List（有序可重复）和Set（无序不可重复）子接口，分别适用不同场景。Map专门存储键值对，key唯一，value可重复。文章通过代码示例演示各集合特性，如ArrayList的有序存取、HashSet的自动去重、HashMap的键值覆盖等，并给出开发选型建议。掌握集合继承关系和核心特性，能有效解决业务中的数据存储、去重和映射问题，避免常见开发错误。文章最后提供面试背诵要点，帮助开发者快速掌握集合框架核心知识]]></description><category></category></item><item><title><![CDATA[Java异常体系：核心结构、异常分类、关键字用法]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162976043</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162976043</guid><author>xiaoye220911</author><pubDate>Fri, 17 Jul 2026 19:11:18 +0800</pubDate><description><![CDATA[所有异常继承自Throwable，分为Error（JVM级致命错误）和Exception（代码级可处理异常）。Exception又分为编译期强制处理的受检异常（如IOException）和运行时非受检异常（如NullPointerException）。文章详解五大关键字（try-catch-finally-throw-throws）的执行逻辑，提供完整代码示例，并给出企业级最佳实践：避免捕获Throwable、禁止空catch块、优先使用try-with-resources自动释放资源。]]></description><category></category></item><item><title><![CDATA[Java 接口与抽象类区别、JDK8/9新特性解析]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162975980</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162975980</guid><author>xiaoye220911</author><pubDate>Fri, 17 Jul 2026 19:03:46 +0800</pubDate><description><![CDATA[本文深入解析Java中抽象类与接口的核心区别：抽象类用于模板复用（单继承，含构造方法、普通变量和方法），侧重&quot;是什么&quot;；接口定义行为规范（多实现，JDK8+支持默认/静态/私有方法，仅常量），关注&quot;能做什么&quot;。通过代码演示对比二者在继承机制、成员权限、设计思想上的差异，并结合实际场景给出选型建议：公共代码复用用抽象类，行为规范和解耦优先选接口。掌握二者区别是面向对象设计的关键基础。]]></description><category></category></item><item><title><![CDATA[Java关键字final三种用法、核心特性与高频易错点]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162975933</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162975933</guid><author>xiaoye220911</author><pubDate>Fri, 17 Jul 2026 19:00:18 +0800</pubDate><description><![CDATA[Java中final关键字详解：核心用法与易错点 摘要：final是Java基础中高频使用的修饰符，表示&quot;不可变&quot;，可修饰类、方法和变量。修饰类时禁止继承，如String类；修饰方法时禁止重写；修饰变量时需区分基本类型（值不可变）和引用类型（地址不可变但内容可变）。特别注意：final数组/对象内部数据可修改，仅限制引用地址改变。开发中常用于保护核心类、锁定业务逻辑及定义常量。正确理解final&quot;仅保证引用不变&quot;的特性是避免踩坑的关键。]]></description><category></category></item><item><title><![CDATA[Java字符串详解：String、StringBuffer、StringBuilder 区别、原理与实战场景]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162929656</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162929656</guid><author>xiaoye220911</author><pubDate>Thu, 16 Jul 2026 11:23:42 +0800</pubDate><description><![CDATA[Java中String、StringBuffer和StringBuilder的核心区别与应用场景。String不可变且线程安全，但拼接效率低；StringBuffer线程安全但效率中等，适用多线程；StringBuilder效率最高但不安全，适用单线程。文章通过底层原理、代码示例和性能测试，三者在可变性、线程安全和执行效率上的差异，并提供开发最佳实践：少量固定字符串String，单线程拼接StringBuilder，多线程场景StringBuffer。同时揭示扩容机制（默认16，扩容公式：原容量*2+2）。]]></description><category></category></item><item><title><![CDATA[Java基础核心精讲：基本数据类型与包装类区别、自动装箱拆箱与缓存陷阱实战解析]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162927813</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162927813</guid><author>xiaoye220911</author><pubDate>Thu, 16 Jul 2026 11:06:29 +0800</pubDate><description><![CDATA[【摘要】Java中基本数据类型与包装类的核心区别包括：基本类型是原始值（如int），存储在栈内存，效率高但有固定默认值；包装类（如Integer）是对象，存储在堆内存，支持null值和方法调用。关键差异体现在自动装箱/拆箱机制（JDK5+）、Integer缓存范围（-128~127），以及包装类必须用equals()比较数值。开发中，集合、泛型、可空字段需用包装类，而计算场景推荐基本类型。掌握这些区别能避免空指针和比较错误，是Java面试高频考点和开发必备知识。]]></description><category></category></item><item><title><![CDATA[Java异常体系精讲：一文吃透九大常见异常成因、场景与代码实战]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162914526</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162914526</guid><author>xiaoye220911</author><pubDate>Thu, 16 Jul 2026 10:44:29 +0800</pubDate><description><![CDATA[《Java开发必知的9大高频异常详解》摘要：本文系统梳理Java开发中9种最常见异常，包括NullPointerException(空指针)、ClassNotFoundException(类未找到)、NumberFormatException(数字格式异常)等。针对每种异常，详细解析其定义、典型触发场景（如未初始化对象调用方法、Jar包缺失、非法字符串转数字等），提供错误代码示例及具体规避方案（判空处理、类型检查、正则校验等）。]]></description><category></category></item><item><title><![CDATA[Java异常执行机制详解：吃透 try-catch-finally 省略规则与 return 后 finally 执行原理]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162914466</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162914466</guid><author>xiaoye220911</author><pubDate>Wed, 15 Jul 2026 22:41:38 +0800</pubDate><description><![CDATA[本文深入解析Java异常处理中try-catch-finally结构的核心考点。关键点包括：1.语法规则：catch和finally可单独省略但不能同时省略，try必须搭配二者之一；2.执行顺序：即使catch/try中有return语句，也会先执行finally代码再返回；3.finally几乎在所有情况下都会执行，除非JVM异常退出。文章通过代码示例验证了这些规则，并指出这是Java面试高频考点，体现了finally作为异常处理最终保障机制的重要性。]]></description><category></category></item><item><title><![CDATA[Java高频易错关键字辨析：一文吃透 throw/throws、final/finally/finalize 核心区别与实战代码]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162914425</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162914425</guid><author>xiaoye220911</author><pubDate>Wed, 15 Jul 2026 22:36:10 +0800</pubDate><description><![CDATA[【摘要】本文解析Java面试中两组高频易混淆知识点：异常处理的throw/throws和三个final相关关键字。throw用于方法内主动抛出异常，而throws用于方法声明可能抛出的异常类型；final修饰不可变的类/方法/变量，finally确保异常处理后的资源释放，finalize是对象回收前的回调方法（已废弃）。通过代码示例对比了它们的使用场景和执行时机，并总结了核心区别：throw是异常触发动作，throws是风险声明；final强调不可变性，finally保证执行，finalize处理回收逻辑。]]></description><category></category></item><item><title><![CDATA[MySQL 多表查询核心：一文吃透 MySQL 内连接、左连接、右连接原理与实战区别]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162727287</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162727287</guid><author>xiaoye220911</author><pubDate>Mon, 13 Jul 2026 17:40:55 +0800</pubDate><description><![CDATA[本文深入解析MySQL多表连接的三种核心方式：内连接（INNER JOIN）、左连接（LEFT JOIN）和右连接（RIGHT JOIN）。通过创建用户表和订单表模拟真实业务场景，详细演示了每种连接的具体SQL实现和查询结果差异。内连接只返回两表匹配的数据，左连接保留左表全部数据并补NULL，右连接保留右表全部数据但可被左连接替代。文章强调左连接是最常用的业务场景解决方案，建议统一使用左连接规范以提高代码可读性。掌握这三种连接的区别是编写复杂SQL、优化查询和避免数据统计问题的关键技能，也是SQL面试的重点]]></description><category></category></item><item><title><![CDATA[MySQL 事务四大特性 ACID 解析：原子性、一致性、隔离性、持久性]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162817887</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162817887</guid><author>xiaoye220911</author><pubDate>Mon, 13 Jul 2026 17:40:42 +0800</pubDate><description><![CDATA[MySQL事务的ACID特性是确保数据安全可靠的核心机制。本文深入解析：1）原子性保证事务完整执行或完全回滚；2）一致性确保数据始终符合业务规则；3）隔离性处理并发事务的相互影响；4）持久性确保提交数据永久保存。通过转账案例的SQL演示，验证了事务执行失败时的自动回滚（原子性）、金额总和不变（一致性）、并发隔离控制以及提交后数据持久化。ACID特性是金融级应用的基石，开发者必须掌握其实现原理和应用场景。]]></description><category></category></item><item><title><![CDATA[MySQL 数据库字段深度选型：一文吃透 char、varchar、float、double 核心区别与实战场景]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162727171</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162727171</guid><author>xiaoye220911</author><pubDate>Sun, 12 Jul 2026 17:02:10 +0800</pubDate><description><![CDATA[本文深入解析MySQL中两组关键字段类型的差异与应用场景：1. char与varchar：char定长高效但空间利用率低，适合身份证等固定长度数据；varchar变长省空间但效率稍低，适合用户名等变长数据。2. float与double：float单精度占4字节，适合一般小数；double双精度占8字节，精度更高适合科学计算。文章通过SQL实例演示了存储差异，并给出了生产环境的最佳选型建议：固定长度用char，变长数据用varchar；普通统计用float，高精度计算用double或decimal。]]></description><category></category></item><item><title><![CDATA[Java 类加载的底层生命周期：一文吃透 Java 类加载五大执行阶段原理]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162727004</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162727004</guid><author>xiaoye220911</author><pubDate>Sun, 12 Jul 2026 17:01:54 +0800</pubDate><description><![CDATA[本文深度解析JVM类加载机制全流程，将其拆解为加载、验证、准备、解析、初始化五大核心阶段。重点剖析准备阶段（静态变量分配默认值）与初始化阶段（赋真实值并执行静态代码块）的关键区别，通过代码实例验证执行顺序。文章还对比了符号引用与直接引用的本质差异，并总结类加载面试常见问题，帮助开发者深入理解JVM底层原理。完整掌握类加载生命周期，是攻克JVM面试题和进阶高级开发的必备基础。]]></description><category></category></item><item><title><![CDATA[Java 面向对象基础：构造方法、toString重写与封装实战详解]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162726638</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162726638</guid><author>xiaoye220911</author><pubDate>Sat, 11 Jul 2026 11:44:44 +0800</pubDate><description><![CDATA[本文介绍了Java面向对象编程的经典入门题目，重点考察类的封装、构造方法、toString重写等核心概念。文章详细解析了Person类的实现，包括：私有属性定义、无参/有参构造方法、getter/setter方法、toString方法重写，以及main方法中对象数组的创建和逆序遍历。通过输入输出示例展示了程序运行效果，并总结了封装、构造方法和对象数组遍历等核心知识点。该题目全面覆盖面向对象编程基础，是Java初学者掌握类与对象、方法重写等关键技术的理想练习。]]></description><category></category></item><item><title><![CDATA[Java 会话追踪的攻防博弈：一文吃透 Cookie 与 Session 底层原理、核心区别与兼容方案]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162674696</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162674696</guid><author>xiaoye220911</author><pubDate>Sat, 11 Jul 2026 11:44:15 +0800</pubDate><description><![CDATA[本文深入解析Cookie与Session的核心区别及工作原理。Cookie存储在客户端，安全性低且容量有限；Session存储在服务端，安全性高且扩展性强。Session通过Cookie传递SessionId实现会话追踪，即使浏览器禁用Cookie也可通过URL重写机制维持会话。文章通过代码演示了Cookie和Session的读写操作，并总结了两者在存储位置、安全性、容量限制等方面的关键差异，帮助开发者深入理解Web会话机制，为登录认证等场景提供底层支持。掌握这些原理可有效应对面试及实际开发中的会话管理需求]]></description><category></category></item><item><title><![CDATA[Java JDK 与 CGLIB 动态代理底层原理与实战应用]]></title><link>https://blog.youkuaiyun.com/xiaoye220911/article/details/162674553</link><guid>https://blog.youkuaiyun.com/xiaoye220911/article/details/162674553</guid><author>xiaoye220911</author><pubDate>Fri, 10 Jul 2026 10:55:30 +0800</pubDate><description><![CDATA[Java动态代理是运行期动态生成代理类的技术，分为JDK原生动态代理（基于接口）和CGLIB动态代理（基于继承）。JDK代理要求目标类实现接口，通过InvocationHandler拦截方法；CGLIB可代理普通类，通过MethodInterceptor实现方法增强。二者在Spring AOP、RPC框架等场景广泛应用，JDK代理轻量但需接口，CGLIB更灵活但无法代理final类/方法。动态代理实现了业务与增强逻辑的解耦，是高级框架设计的核心基础。]]></description><category></category></item></channel></rss>