<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hudd668的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hudd668</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hudd668]]></copyright><item><title><![CDATA[JavaEE 初阶 - 多线程（进阶）]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/167224059</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/167224059</guid><author>hudd668</author><pubDate>Tue, 13 Oct 2026 20:10:05 +0800</pubDate><description><![CDATA[本文系统梳理了多线程中的常见锁策略，从悲观锁与乐观锁的冲突处理思想，到重量级/轻量级锁、自旋锁的性能权衡，再到公平锁与非公平锁的调度差异，以及可重入锁、读写锁的特性与应用场景。同时深入解析了CAS（Compare And Swap）机制的核心原理及其在原子操作、自旋锁等场景中的关键作用，强调各类锁策略可组合使用，共同构建高效、安全的并发控制体系。]]></description><category></category></item><item><title><![CDATA[JavaEE 初阶 - 多线程（初阶）]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/166993074</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/166993074</guid><author>hudd668</author><pubDate>Tue, 06 Oct 2026 20:27:30 +0800</pubDate><description><![CDATA[本文介绍了线程的基本概念，阐述了线程作为操作系统调度单位的作用，强调多线程可实现任务并发执行，提升程序效率。通过对比进程与线程，说明线程共享进程资源但存在安全风险。文章还讲解了多线程创建的多种方式（继承Thread、实现Runnable、Lambda等），并以实例演示线程并发执行的不确定性。最后指出，多线程在多核环境下可实现真正并行，显著提升运行速度。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 认识异常]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/164228759</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/164228759</guid><author>hudd668</author><pubDate>Wed, 02 Sep 2026 18:06:42 +0800</pubDate><description><![CDATA[随着程序越来越复杂，我们会发现一个问题：程序并不总是能够按照我们预期的方式运行。例如：
程序运行之后发生异常，程序直接停止了。再比如：
运行后发生异常。又比如：
运行后发生异常。这些问题有一个共同特点：程序在运行过程中出现了异常情况。那么，什么是异常？异常和错误有什么区别？为什么程序会出现异常？出现异常以后，程序一定会停止吗？我们能不能自己处理异常？这些就是本篇要讲的内容。异常的英文是：Exception在 Java 中，异常是程序在运行过程中出现的不正常情况，它会导致程序无法按照正常流程继续执行。例如：
]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 认识String类]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/164191552</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/164191552</guid><author>hudd668</author><pubDate>Mon, 31 Aug 2026 19:53:51 +0800</pubDate><description><![CDATA[String 不是 Java 的基本数据类型，而是一个类。这些属于 Java 的基本数据类型。而String是一个类。String name = "张三";中的 String 本质上是一个引用类型。这和我们前面学习的类和对象有直接关系。int age;这里 Student 是类。而 student 是引用变量。String 也是一样。String 类的对象。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 接口]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/164096137</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/164096137</guid><author>hudd668</author><pubDate>Sun, 30 Aug 2026 17:18:53 +0800</pubDate><description><![CDATA[接口使用interface关键字定义。interface 接口名 {void fly();System.out.println(name + "正在睡觉");void fly();@OverrideSystem.out.println(name + "吃狗粮");@OverrideSystem.out.println(name + "正在游泳");@OverrideSystem.out.println(name + "吃虫子");@Override。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 抽象类]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/164095606</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/164095606</guid><author>hudd668</author><pubDate>Sun, 30 Aug 2026 17:17:57 +0800</pubDate><description><![CDATA[abstract是 Java 中用于定义抽象类和抽象方法的关键字。前者表示：抽象类后者表示：抽象方法抽象方法是一种只有方法声明，没有方法体的方法。后面没有 {. . . } 而是直接;所以这个方法是抽象方法。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 多态 - ②]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163762198</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163762198</guid><author>hudd668</author><pubDate>Thu, 20 Aug 2026 18:08:14 +0800</pubDate><description><![CDATA[本文摘要： 本文主要讲解Java多态中的向上转型与向下转型。向上转型指子类对象转为父类类型，如Person p = new Student()，此时只能访问父类中声明的成员。向下转型是将父类引用转回子类类型，如Student s = (Student)p，可访问子类特有方法。但向下转型存在ClassCastException风险，需使用instanceof进行类型检查。文章还分析了多态在JVM中的内存结构，说明父类引用实际指向子类对象。通过向上转型+方法重写+动态绑定实现多态特性。（150字）]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 多态 - ①]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163760429</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163760429</guid><author>hudd668</author><pubDate>Sun, 16 Aug 2026 23:26:02 +0800</pubDate><description><![CDATA[本文介绍了Java面向对象编程中的多态特性。主要内容包括： 多态的概念：使用父类类型统一处理不同子类对象，实现同一方法在不同子类中的不同表现。 多态的必要性：通过继承后，如果不使用多态，会导致代码与具体子类强耦合，增加新子类时需要修改原有代码。 多态的实现：父类引用可以指向不同子类对象，调用被重写方法时实际执行子类的方法。 多态的优势：提高程序扩展性，降低代码耦合度，新增子类时无需修改原有处理逻辑。 多态的现实类比：类似于现实世界中"动物"这一概念可以表现为狗、猫等具体动物，但各自行为不同。 多态是Java]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 继承 - ②]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163542212</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163542212</guid><author>hudd668</author><pubDate>Fri, 14 Aug 2026 17:12:27 +0800</pubDate><description><![CDATA[本文介绍了Java中super关键字的作用和使用场景。super主要用于解决继承中的成员冲突和父类初始化问题，具体功能包括：访问父类成员变量（super.name）、调用父类方法（super.eat()）以及调用父类构造方法（super()）。当子类与父类成员重名时，默认遵循"就近原则"访问子类成员，而super可以显式访问父类成员。此外，构造方法中super()必须作为第一条语句执行，确保父类先初始化。文章还对比了this与super的区别，强调super仅代表当前对象的父类部分而非独立对象。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 继承 - ①]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163480856</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163480856</guid><author>hudd668</author><pubDate>Fri, 14 Aug 2026 17:11:41 +0800</pubDate><description><![CDATA[继承（Inheritance）是一种类与类之间的关系，子类可以继承父类的属性和行为，从而实现代码复用和功能扩展。子类可以拥有父类中可以继承的成员。Person 类中有以下变量和方法↓nameStudent 类中有以下方法↓ study()如果 Student 继承 Person。name是不是几乎不用重复写代码？这就是继承最大的作用。抽取多个类共同拥有的属性和行为。int age;System.out.println("吃饭");System.out.println("睡觉");]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 类和对象 - ⑤]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163418741</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163418741</guid><author>hudd668</author><pubDate>Tue, 04 Aug 2026 18:32:58 +0800</pubDate><description><![CDATA[本文主要介绍了Java中Object类的基础知识及其应用。首先通过示例展示了Object类作为所有Java类的默认父类，解释了toString()方法的来源。接着详细分析了对象打印原理，指出默认输出实际上是类名+@+哈希值，而非内存地址。文章强调了重写toString()方法的重要性，并介绍了@Override注解的校验作用。最后提出使用对象数组管理多个同类对象的方法，以解决大量对象创建和管理的问题。这些内容涵盖了Java面向对象编程中关于Object类和对象管理的基础知识点。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 类和对象 - ④]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163374907</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163374907</guid><author>hudd668</author><pubDate>Tue, 04 Aug 2026 18:05:04 +0800</pubDate><description><![CDATA[本文讲解了Java中static关键字的使用，主要包括： static成员变量（类变量）的特点和使用场景，如统计学生数量等需要共享数据的场景。 static成员方法的定义和调用方式，以及其访问限制（只能访问静态成员，不能使用this）。 static初始化的时机（类加载时完成，只执行一次）。 static与普通成员的区别：所属对象、共享性、创建时间、访问方式等。 解释main方法必须是static的原因。 代码块的分类（普通、构造、静态）及其执行顺序。 完整类加载和对象创建时的执行顺序：静态代码块→构造代码]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 类和对象 - ③]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163374525</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163374525</guid><author>hudd668</author><pubDate>Sun, 02 Aug 2026 21:20:37 +0800</pubDate><description><![CDATA[本文摘要： Java封装是面向对象三大特性之一，通过private关键字隐藏成员变量，提供getter/setter方法控制访问权限。封装能保障数据安全（如防止年龄赋负值），符合JavaBean规范（private属性+公共方法）。访问权限分为public>protected>默认>private，应遵循最小权限原则。包(package)用于分类管理类，需注意导入语句的使用。最后通过学生类案例演示了标准封装实现，包括构造方法、数据校验和规范化的方法定义，体现了封装的核心价值——隐藏实现细节并确保数据合法性。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 类和对象 - ②]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163343321</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163343321</guid><author>hudd668</author><pubDate>Sun, 02 Aug 2026 21:08:49 +0800</pubDate><description><![CDATA[本文摘要： 本文详细讲解了Java中this引用的概念和使用方法。首先通过实例分析了成员变量与局部变量同名时的问题，引出this引用的必要性。this表示当前对象的引用，本质是保存对象地址的变量。文章阐述了this的三大特性：只能在成员方法/构造方法中使用、代表调用对象、不可手动赋值。重点介绍了this的三种用法：访问成员变量解决命名冲突、调用成员方法和构造方法（必须放在第一行）。最后讲解了对象初始化的三种方式（默认初始化、就地初始化和构造方法初始化）以及构造方法的特点（必须与类同名、无返回值、自动调用、可]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 类和对象 - ①]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163312035</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163312035</guid><author>hudd668</author><pubDate>Thu, 30 Jul 2026 18:02:34 +0800</pubDate><description><![CDATA[本文介绍了面向对象编程（OOP）的基本概念及其在Java中的应用。主要内容包括： 面向对象思想的核心是将现实事物抽象为程序中的对象，每个对象包含属性（数据）和行为（方法）。 面向对象与面向过程的区别：前者关注"谁来做"，后者关注"如何做"。面向对象更适合大型项目，具有更好的可维护性和代码复用性。 类的定义与使用：类是对象的模板，通过class关键字定义，包含成员变量（属性）和成员方法（行为）。类名应采用大驼峰命名法。 成员变量与局部变量的区别：成员变量属于对象，有默认值；局部变量属于方法，必须初始化，生命周]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 数组的定义与使用 - ②]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163171725</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163171725</guid><author>hudd668</author><pubDate>Sun, 26 Jul 2026 18:43:14 +0800</pubDate><description><![CDATA[本文介绍了Java数组的基本操作，包括： 数组元素的访问与修改：通过索引（从0开始）访问或修改元素； 数组长度获取：使用length属性； 数组遍历：普通for循环（适合需要索引的情况）和增强for循环（foreach，适合简单遍历）； 常见异常：数组越界（访问不存在的索引）和空指针异常（未初始化数组）； 常见数组练习：求和、求最大值、查找元素、逆序等； Arrays工具类的使用：toString（数组转字符串）、sort（排序）、equals（比较数组内容）等。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 数组的定义与使用 - ①]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163141789</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163141789</guid><author>hudd668</author><pubDate>Sat, 25 Jul 2026 17:26:24 +0800</pubDate><description><![CDATA[本文系统介绍了Java数组的概念、特点及应用场景。数组是一种存储多个相同类型元素的数据结构，具有类型统一、长度固定、元素有序等特点，属于引用数据类型。文章通过对比普通变量与数组在存储多个数据时的差异，说明了数组的优势：简化代码、便于遍历和统计计算。详细讲解了数组的两种初始化方式（动态初始化和静态初始化）及其适用场景，并分析了数组的组成结构（变量、对象、元素和索引）。数组适用于需要统一管理同类数据的场景，能有效提升程序开发效率和可维护性。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 方法的使用 - ③]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163110360</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163110360</guid><author>hudd668</author><pubDate>Fri, 24 Jul 2026 19:27:55 +0800</pubDate><description><![CDATA[本文摘要： Java参数传递机制详解：Java采用值传递（Pass by Value），无论是基本类型还是引用类型。对于基本类型，传递的是值的副本；对于引用类型，传递的是地址值的副本。修改引用类型参数会影响原对象内容，但重新赋值不会影响外部变量。递归是指方法调用自身，必须包含终止条件（递归出口）和递推公式（问题分解），否则会导致栈溢出。正确使用递归可以解决可分解的重复性问题，如阶乘计算等。 （字数：149字）]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 方法的使用 - ②]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163085880</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163085880</guid><author>hudd668</author><pubDate>Thu, 23 Jul 2026 18:13:58 +0800</pubDate><description><![CDATA[本文摘要： 本文详细讲解了Java方法签名和方法重载的核心概念。方法签名由方法名和参数列表（参数类型、数量、顺序）组成，用于唯一标识方法，不包含返回值、修饰符等元素。方法重载允许在同一个类中定义多个同名方法，只要参数列表不同即可，提高了代码的可读性和调用便捷性。文章通过具体代码示例阐述了重载的三种情况（参数数量、类型、顺序不同），并明确了不能构成重载的情形（如仅返回值不同）。最后指出方法重载的本质就是方法签名的差异化，这是Java实现多态性的重要基础。理解这些概念对编写清晰、灵活的Java代码至关重要。]]></description><category></category></item><item><title><![CDATA[JavaSE 基础语法 - 方法的使用 - ①]]></title><link>https://blog.youkuaiyun.com/hudd668/article/details/163053990</link><guid>https://blog.youkuaiyun.com/hudd668/article/details/163053990</guid><author>hudd668</author><pubDate>Thu, 23 Jul 2026 18:01:02 +0800</pubDate><description><![CDATA[文章摘要： 方法（Method）是Java中用于封装特定功能的代码块，能够被重复调用以提高代码复用性。通过方法可以避免重复编写相同代码，降低维护成本，提升可读性和模块化开发。一个方法由访问修饰符、static关键字、返回值类型、方法名、参数列表和方法体组成，遵循"一个方法只完成一项功能"的原则。例如，计算两数之和的功能可以封装成方法，在需要时直接调用，避免代码冗余。合理使用方法能够使程序结构更清晰，便于团队协作开发。]]></description><category></category></item></channel></rss>