<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xing_ci_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xing_ci_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xing_ci_]]></copyright><item><title><![CDATA[四个环节带你搞定Java中的I/O]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/162396811</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/162396811</guid><author>xing_ci_</author><pubDate>Sun, 28 Jun 2026 20:17:41 +0800</pubDate><description><![CDATA[本文简要介绍了Java I/O流的核心概念与基本使用模式。I/O流分为字节流和字符流两大类，分别处理二进制数据和文本数据。文章将I/O操作分为四个关键步骤：确定数据源、打开流、操作流（读写数据）以及关闭流（释放资源）。通过FileInputStream示例展示了完整的I/O流程，强调finally块中关闭流的重要性，以避免资源泄漏。文中还列出了常用的I/O类，包括字节流(FileInputStream/OutputStream)和字符流(FileReader/Writer)及其缓冲版本。所有I/O类均来自j]]></description><category></category></item><item><title><![CDATA[什么是哈希]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/162348467</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/162348467</guid><author>xing_ci_</author><pubDate>Fri, 26 Jun 2026 20:40:05 +0800</pubDate><description><![CDATA[哈希是一种将任意长度数据转换为固定长度值的数学函数，具有确定性、快速计算、单向性、抗碰撞和雪崩效应等核心特性。常见算法包括MD5和SHA-256。哈希在数据完整性验证、密码安全存储和数据结构优化中发挥关键作用：通过比较哈希值验证数据是否被篡改；系统存储密码哈希值而非明文，采用加盐和慢哈希算法增强安全性；哈希表基于哈希函数实现高效操作，时间复杂度接近O(1)。这些应用凸显了哈希在计算机科学中的重要性。]]></description><category></category></item><item><title><![CDATA[动态规划入门：一维数组的巧妙运用（C++版）]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/161979979</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/161979979</guid><author>xing_ci_</author><pubDate>Sun, 14 Jun 2026 15:48:54 +0800</pubDate><description><![CDATA[本文介绍了使用一维数组实现动态规划的方法。动态规划通过分解问题、存储子问题解来提高效率，一维数组因其空间高效、代码简洁而适用于线性问题。文章以斐波那契数列、爬楼梯和零钱兑换三个经典问题为例，展示了状态定义、转移方程推导和初始条件设置的关键步骤，并总结了通用解题流程（定义状态→找转移方程→设初始条件→确定遍历顺序）。此外，还列举了常见问题类型和空间优化等实战技巧，强调理解状态含义和最优子结构的重要性。一维DP的核心在于利用数组存储中间结果避免重复计算，是解决许多优化问题的有效工具。]]></description><category></category></item><item><title><![CDATA[Java多线程简单指南]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/161740225</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/161740225</guid><author>xing_ci_</author><pubDate>Sat, 06 Jun 2026 11:09:01 +0800</pubDate><description><![CDATA[Java多线程编程摘要 多线程允许程序并行执行多个任务，提高效率和响应速度。线程是进程内的执行单元，共享进程内存空间。多线程优势包括：提高CPU利用率、改善响应性、简化并发模型、利用多核CPU。Java创建线程的三种方式：继承Thread类（简单）、实现Runnable接口（推荐）、实现Callable接口（可返回结果）。线程生命周期包括新建、就绪、运行、阻塞和终止五种状态。常用线程控制方法有start()、join()、sleep()等。线程安全问题需通过同步机制解决，如synchronized关键字或L]]></description><category></category></item><item><title><![CDATA[面向对象设计的SOLID原则：核心概念与实战运用指南]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/161545611</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/161545611</guid><author>xing_ci_</author><pubDate>Sat, 30 May 2026 18:00:48 +0800</pubDate><description><![CDATA[SOLID原则是面向对象设计的五大核心原则，旨在提高代码的可维护性和扩展性。它们包括：单一职责原则（SRP，一个类只做一件事）、开闭原则（OCP，对扩展开放对修改关闭）、里氏替换原则（LSP，子类可替换父类不影响程序行为）、接口隔离原则（ISP，避免臃肿接口）和依赖倒置原则（DIP，高层模块依赖抽象而非具体实现）。通过示例代码展示了如何遵循这些原则重构代码，如拆分职责、使用接口隔离功能、依赖注入等，使系统更灵活、易维护且适应变化。]]></description><category></category></item><item><title><![CDATA[Java的封装与开闭原则：面向对象设计的核心基石]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/161427252</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/161427252</guid><author>xing_ci_</author><pubDate>Tue, 26 May 2026 17:24:57 +0800</pubDate><description><![CDATA[文章摘要 本文深入探讨了面向对象编程中两个核心设计原则：封装和开闭原则。封装通过访问修饰符隐藏实现细节，仅暴露必要接口，提高了代码安全性和可维护性。开闭原则强调对扩展开放、对修改关闭，通过抽象和多态实现功能扩展而不修改原有代码。文章通过Java代码示例展示了如何正确应用这些原则：封装示例演示了如何保护Student类数据，开闭原则示例则通过Shape接口实现可扩展的图形面积计算。这两个原则共同构成了构建健壮、可扩展Java应用程序的基础，能有效降低代码耦合度，提高系统稳定性。]]></description><category></category></item><item><title><![CDATA[二叉树的创建和简单遍历（递归）]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/161201443</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/161201443</guid><author>xing_ci_</author><pubDate>Mon, 18 May 2026 21:30:14 +0800</pubDate><description><![CDATA[本文介绍了二叉树的基本概念和特性。二叉树是一种每个节点最多有两个子节点的树形结构，具有根节点、叶子节点等基本组成部分。文章详细讲解了满二叉树、完全二叉树、二叉搜索树和平衡二叉树等常见类型，并给出了链式存储的代码实现。重点阐述了二叉树的三种遍历方式（前序、中序、后序）及其递归实现代码。最后强调二叉树是数据结构学习的基础，掌握二叉树对理解更复杂的数据结构至关重要。全文系统性地梳理了二叉树的核心知识点，为数据结构学习提供了清晰的框架。]]></description><category></category></item><item><title><![CDATA[模拟计算器（利用c++完成）]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/160958544</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/160958544</guid><author>xing_ci_</author><pubDate>Sun, 10 May 2026 22:37:31 +0800</pubDate><description><![CDATA[本文介绍了如何用C++实现一个支持加减乘除和括号运算的计算器。核心思路是通过递归处理括号表达式，先计算最内层括号内的算式，再逐步向外计算。具体实现分为三步：1）定位并提取最内层括号内的表达式；2）将数字和运算符分别存储到数组中；3）按照先乘除后加减的顺序进行运算。文章详细讲解了数字提取、运算符处理以及运算顺序控制的实现方法，并提供了完整的代码示例。该计算器能够正确处理包含小数点和多种运算符的复杂表达式。]]></description><category></category></item><item><title><![CDATA[编程新手必会（应能手搓）的三种排序算法和应了解思路的重要排序算法]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/160744710</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/160744710</guid><author>xing_ci_</author><pubDate>Mon, 04 May 2026 19:42:21 +0800</pubDate><description><![CDATA[本文介绍了四种常见排序算法及其实现。冒泡排序通过相邻元素比较交换实现排序，时间复杂度O(n²)；选择排序通过选择最小值放到已排序末尾实现排序；插入排序将元素逐个插入已排序序列。这三种简单排序算法时间复杂度均为O(n²)。最后介绍了高效的快速排序，平均时间复杂度O(n log n)，并展示了C++中对vector、数组和结构体的快速排序实现方法，包括使用lambda表达式进行自定义排序。这些排序算法在实际应用中可根据数据规模和性能需求选择使用。]]></description><category></category></item><item><title><![CDATA[利用IDEA查看Java的String类源码并解释几个用法]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/160533751</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/160533751</guid><author>xing_ci_</author><pubDate>Sun, 26 Apr 2026 22:24:42 +0800</pubDate><description><![CDATA[本文介绍了Java String类的两种常用方法：1) 字符数组截取构造方法String(char[],int,int)，通过指定起始位置和长度从字符数组创建子字符串；2) 字符串比较方法equals()，用于严格比较字符串内容而非地址。示例代码展示了如何从&quot;hello world!&quot;字符数组截取&quot;world&quot;子串，以及如何比较两个字符串内容是否相同。这两种方法分别解决了字符串构造和内容比较的实际需求，是String类的基础但重要的功能。]]></description><category></category></item><item><title><![CDATA[C++常用字符串函数介绍]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/160283251</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/160283251</guid><author>xing_ci_</author><pubDate>Sun, 19 Apr 2026 21:53:17 +0800</pubDate><description><![CDATA[本文介绍了C++中字符串处理的各种常用函数，包括字符串构造、长度获取、比较、插入、拼接、删除、替换、大小写转换、查找和排序等功能。通过示例代码详细展示了每个函数的使用方法，如string构造函数可以生成空串或复制子串，size()和length()获取字符串长度，append()和+操作符进行字符串拼接，erase()删除字符串内容，replace()实现字符替换，transform()进行大小写转换，以及find()系列函数进行字符串查找等。这些函数能够帮助开发者更高效地处理字符串操作，提升编程效率。]]></description><category></category></item><item><title><![CDATA[用回溯实现DFS]]></title><link>https://blog.youkuaiyun.com/xing_ci_/article/details/160059921</link><guid>https://blog.youkuaiyun.com/xing_ci_/article/details/160059921</guid><author>xing_ci_</author><pubDate>Sun, 12 Apr 2026 23:01:08 +0800</pubDate><description><![CDATA[本文介绍了使用回溯法实现DFS（深度优先搜索）的基本原理和实现步骤。DFS通过递归方式&quot;一条路走到底&quot;，主要包含四个关键步骤：边界检查与剪枝、条件检测、递归调用和回溯操作。文章通过一个最短路径问题的C语言代码示例，展示了如何用visited数组标记访问状态、剪枝优化搜索过程、递归遍历邻接节点以及回溯恢复状态。该方法适用于路径类问题，剪枝策略能显著提升性能，回溯操作确保状态完整性。完整代码演示了从节点1到节点n的最短路径搜索过程。]]></description><category></category></item></channel></rss>