<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[change_topic的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/change_topic</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; change_topic]]></copyright><item><title><![CDATA[Python中的高级特性]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/162851672</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/162851672</guid><author>change_topic</author><pubDate>Thu, 30 Jul 2026 00:30:23 +0800</pubDate><description><![CDATA[本文摘要： Python高级特性解析：150字读懂闭包、装饰器、单例模式与生成器 闭包三要素：函数嵌套、变量引用、返回内层函数，用于保存状态和数据封装 装饰器原理：接收函数参数，返回增强函数，通过@语法糖实现登录验证/日志记录 单例模式：重写__new__控制实例化，确保全局唯一对象（如数据库连接） 魔术方法：__str__定制打印，__del__资源清理，__call__使对象可调用 生成器优势：yield实现惰性计算，节省内存，支持大数据处理 （注：实际摘要147字，完整覆盖四大核心知识点）]]></description><category></category></item><item><title><![CDATA[Python中的正则表达式 ]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/162612635</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/162612635</guid><author>change_topic</author><pubDate>Mon, 13 Jul 2026 10:45:00 +0800</pubDate><description><![CDATA[本文摘要：正则表达式是一种用于字符串匹配和处理的规则系统，主要功能包括验证格式、查找内容、提取信息和替换文本。文章详细介绍了正则表达式的核心语法：1. 单个字符匹配规则（如\d、\w、[]等）和多个字符匹配规则（如*、+、?等量词）。2. 边界控制（^和$）和分组匹配（()和|）。3. 常用函数：match()、search()、findall()和sub()的使用方法。4. 贪婪与非贪婪匹配模式的区别及应用场景，特别强调在HTML标签处理等场景中非贪婪模式的重要性。文章通过大量代码示例演示了正则表达式在实]]></description><category></category></item><item><title><![CDATA[Python中静态方法、类方法和文件操作]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/162431895</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/162431895</guid><author>change_topic</author><pubDate>Mon, 06 Jul 2026 10:45:00 +0800</pubDate><description><![CDATA[本文摘要： Python类方法详解：实例方法（操作实例属性，self参数）、静态方法（独立功能，@staticmethod）和类方法（操作类属性，@classmethod，cls参数）。文件操作包括打开/关闭文件（推荐with语句）、读写模式（r/w/a/+b）、常用方法（read/readline/write）和指针控制（tell/seek）。文件目录操作需导入os模块，支持重命名/删除文件、创建/删除目录、路径查询和检验（exists/isdir）。注意事项：二进制文件需加b模式，写操作会覆盖内容（w模]]></description><category></category></item><item><title><![CDATA[Python中的封装，继承和多态]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/162246614</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/162246614</guid><author>change_topic</author><pubDate>Thu, 25 Jun 2026 11:00:00 +0800</pubDate><description><![CDATA[文章摘要：本文介绍了面向对象编程的三大特性：封装、继承和多态。1) 封装通过将属性和方法打包在类中，并使用私有属性(__属性名)限制外部访问，只通过接口方法暴露必要功能；2) 继承允许子类复用父类的非私有属性和方法，支持单继承、多继承及方法重写(super()可调用父类方法)；3) 多态通过不同对象调用相同方法产生不同结果，可通过鸭子类型(对象作为参数传递)或继承重写实现。这三个特性共同构成了面向对象编程的核心机制。]]></description><category></category></item><item><title><![CDATA[Python中的类和对象]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/162171504</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/162171504</guid><author>change_topic</author><pubDate>Mon, 22 Jun 2026 10:45:00 +0800</pubDate><description><![CDATA[本文介绍了面向对象编程中的核心概念：类和对象。类作为通用模板（如&quot;猫&quot;），对象是类的具体实例（如&quot;黄色的胖猫&quot;）。通过Python代码示例展示了如何定义类（class Car）和创建对象（car1=Car()），并解释了self参数代表调用方法的对象。文章还区分了类属性（所有对象共有，如wheel_count=4）和实例属性（对象独有），介绍了__init__构造函数（初始化属性）和__del__析构函数（释放资源）的作用。这些概念共同构成了面向对象编程的基础框架。]]></description><category></category></item><item><title><![CDATA[408考研真题系列二(2019年42题)]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/156236865</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/156236865</guid><author>change_topic</author><pubDate>Thu, 25 Dec 2025 10:30:00 +0800</pubDate><description><![CDATA[本文分析了链式循环队列的实现原理。关键点包括：1)采用链式存储实现空间可重复利用；2)初始状态设置分割结点，rear指向队尾；3)队列空条件为front==rear，满条件为rear-&gt;next==front；4)实现入队操作时，满队列需新增结点并连接，非满直接赋值移动指针；出队操作需判断非空后移动front指针。文末给出了完整的C语言实现代码，包含队列初始化、入队、出队等操作。该实现满足题目要求的空间动态增长和循环使用特性。]]></description><category></category></item><item><title><![CDATA[栈和队列（循环队列）]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/156151020</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/156151020</guid><author>change_topic</author><pubDate>Tue, 23 Dec 2025 10:30:00 +0800</pubDate><description><![CDATA[本文介绍了栈和队列两种线性数据结构的基本概念与实现方法。栈是后进先出(LIFO)结构，使用数组存储数据并通过top指针管理栈顶，提供了初始化、判空、入栈和出栈操作。队列是先进先出(FIFO)结构，采用循环队列实现以避免空间浪费，包含初始化、入队和出队操作。文中详细说明了两种数据结构的数组存储方式、关键指针（栈顶、队首/队尾）的处理逻辑，并给出了完整的C语言实现代码，包括栈和队列的结构体定义、基本操作函数以及测试用例。循环队列的实现特别强调了通过取模运算实现环形结构的特点。]]></description><category></category></item><item><title><![CDATA[408考研真题系列一（2019年41题）]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/155946156</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/155946156</guid><author>change_topic</author><pubDate>Tue, 16 Dec 2025 10:45:00 +0800</pubDate><description><![CDATA[摘要：本文提出了一种空间复杂度为O(1)的链表重排算法。算法分为三步：首先使用快慢指针法找到中间节点将链表拆分为两部分；然后逆置后半部分链表；最后交替合并两个链表。该方法通过三个指针实现逆置和合并操作，避免了额外空间的使用。代码实现包括链表拆分、逆置和合并三个核心函数，并提供了完整的测试示例。该算法高效地完成了链表的重排任务，满足了题目要求的空间复杂度限制。]]></description><category></category></item><item><title><![CDATA[c语言实现顺序表和链表（利用了c++的引用）]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/155775837</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/155775837</guid><author>change_topic</author><pubDate>Thu, 11 Dec 2025 10:00:22 +0800</pubDate><description><![CDATA[本文介绍了顺序表和链表的基本操作实现。顺序表部分详细讲解了插入（元素后移）、删除（元素前移）和查询操作的实现思路及C语言代码，包括数组越界检查等细节。链表部分则分别阐述了头插法、尾插法的建立方式，以及基于值和下标的查询方法，同时提供了插入和删除结点的具体实现代码。两种数据结构都通过示例代码展示了完整操作流程，包括初始化、增删改查等基本功能，并配有详细的注释说明。]]></description><category></category></item><item><title><![CDATA[C语言基础笔记]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/155308316</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/155308316</guid><author>change_topic</author><pubDate>Thu, 27 Nov 2025 11:45:05 +0800</pubDate><description><![CDATA[本文主要介绍了C语言中的基础概念和关键知识点，包括数据类型、字符串处理、指针操作、内存管理、函数调用、结构体和引用等核心内容。重点阐述了字符编码规则、强制类型转换原理、格式化输入输出、数组与指针的关系、动态内存申请与释放、函数参数传递机制、结构体对齐规则以及C++引用的应用场景。文章通过代码示例详细说明了各类运算符的使用、数组越界风险、指针偏移特性、递归函数实现、局部/全局变量作用域等编程要点，并对比了栈空间与堆空间的差异，为C语言学习者提供了全面的基础知识梳理和实践指导。]]></description><category></category></item><item><title><![CDATA[图书管理系统]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/149018167</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/149018167</guid><author>change_topic</author><pubDate>Wed, 02 Jul 2025 10:45:00 +0800</pubDate><description><![CDATA[本文介绍了一个基于Spring+SpringBoot+SpringMVC+MyBatis架构的图书管理系统实现。系统包含用户登录、图书添加/修改/删除/列表展示等功能模块，采用MVC分层架构设计，并实现了分页查询和逻辑删除等核心功能。 主要技术点： 使用MyBatis进行数据库操作，通过注解和XML两种方式实现CRUD 采用Session机制实现用户登录验证 使用PageHelper实现分页查询功能 通过枚举类管理图书状态 前端使用Bootstrap+jQuery实现交互界面]]></description><category></category></item><item><title><![CDATA[数据库框架Mybatis（超详细版）]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/148230502</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/148230502</guid><author>change_topic</author><pubDate>Tue, 27 May 2025 10:45:00 +0800</pubDate><description><![CDATA[本文介绍了MyBatis框架的配置与使用。首先讲解了数据库准备，包括MySQL安装、Navicat连接和表创建。随后详细说明了Java对象与数据库的映射方法，包括注解方式实现CRUD操作、参数传递和结果映射的三种方式（SQL重命名、@Results注解、自动驼峰转换）。接着介绍了XML方式的实现，包括增删改查操作和resultMap配置。文中还对比了#{}和${}的区别，强调了SQL注入问题。最后讲解了数据库连接池的作用及Hikari和Druid两种实现。通过完整的代码示例展示了MyBatis的基本用法，帮]]></description><category></category></item><item><title><![CDATA[Spring中的控制反转和依赖注入（IoC和DI）以及常见面试题]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/147669738</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/147669738</guid><author>change_topic</author><pubDate>Mon, 05 May 2025 10:45:00 +0800</pubDate><description><![CDATA[Spring在不同情景下呢有不同的意思。（1）比如说你的项目里面使用到了Spring，那这里的Spring指的是Spring家族包含了各种各样的框架；（2）要是说Spring有什么特点其中一个是IoC那么这里指的就是Spring Core，Spring Framework。（Spring Core 是 Spring Framework 的核心模块，主要负责实现 IoC 和 DI 功能；]]></description><category></category></item><item><title><![CDATA[Python中的内置函数]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/147602044</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/147602044</guid><author>change_topic</author><pubDate>Wed, 30 Apr 2025 10:45:00 +0800</pubDate><description><![CDATA[其实从字面意思就能够了解，就是语言本身自带的函数。大佬们因为在日常编码中经常使用这些函数，就把这些函数写好了，像我们这种小白只需要拿过来用就行了。查看所有的内置函数（这里的结果太多，只截取了一部分）。#大写字母开头一般是内置常量名，小写这样说有点抽象，用代码来解释一下吧！return a+b#需要先导包#reduce（function,sequence） function--函数:必须是有两个参数的函数，sequence是序列：可迭代对象# 连续的两个元素作为参数，返回一个值，最后返回一个值。]]></description><category></category></item><item><title><![CDATA[Python中的匿名函数]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/147470083</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/147470083</guid><author>change_topic</author><pubDate>Fri, 25 Apr 2025 10:45:00 +0800</pubDate><description><![CDATA[lambda只能实现简单的逻辑，当遇到逻辑复杂且代码量较大时，不建议使用lambda表达式，否则会给后面的代码维护增加困难。lambda不需要写return来返回值，表达式 本身就是返回结果。函数名 = lambda 形参 ： 返回值（表达式）函数名 = lambda 形参：表达式（返回值）默认参数必须写在非默认参数后面。调用：结果 = 函数名（实参）]]></description><category></category></item><item><title><![CDATA[Python中的函数和函数嵌套]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/147409856</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/147409856</guid><author>change_topic</author><pubDate>Wed, 23 Apr 2025 10:45:00 +0800</pubDate><description><![CDATA[格式：def func(*args)  这里的args是可以被其他名称替换的，但是我们默认使用args，你可以使用其他名称。函数名被调用几次，里面的代码就会执行几次，代码的执行顺序是从上往下执行，所以定义必须在调用函数之前。def 函数名(形参a，形参b):        #形参：定义函数时，括号里面的变量。将具有独立功能的代码块组织成一个整体，使其具有特殊功能的代码集，称之为函数。含义：传入的值的数量是可以改变的，可以传入多个，也可以不传。作用：使用函数可以加强代码的复用性，提高程序编写的效率。]]></description><category></category></item><item><title><![CDATA[深浅拷贝的区别（面试常问）]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/147383640</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/147383640</guid><author>change_topic</author><pubDate>Tue, 22 Apr 2025 10:45:00 +0800</pubDate><description><![CDATA[拷贝最外层的对象，内部元素只拷贝了一个引用。在浅拷贝时，会创建一个新的对象，只拷贝第一层的数据，嵌套层会指向原来的内存地址。#赋值：等于完全共享资源，当其中一个值发生改变时会完全被另一个值共享。# 深拷贝数据变化只影响自己本身，跟原来的对象没有关联。注意：外层的内存地址不同，但是内层的内存地址相同）#内存地址不一样，说明不是同一个对象。优点:拷贝速度快，占用空间少，拷贝效率高。外层的对象何内部的元素都拷贝一遍。]]></description><category></category></item><item><title><![CDATA[Python中的集合（Java中的Set)]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/147332636</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/147332636</guid><author>change_topic</author><pubDate>Sat, 19 Apr 2025 10:45:00 +0800</pubDate><description><![CDATA[每次运行的结果不同，代表hash值在变化，所以其在hash表中的位置也就不同进而实现了集合的无序性，但是python中int整型的hash值就是它本身，所以它的hash值和顺序都不会变化。此外也正是因为有无序性，所以不能修改集合的值。discard：选择要删除的元素，有就会删除，没有则不会发生任何改变，即不会进行任何操作。注意：集合是无序的，并且里面的元素是唯一的，所以集合一般用于元组或者列表的去重。集合名 = {元素1，元素2，元素3.....}2.集合无序性的实现方式涉及hash表（了解）]]></description><category></category></item><item><title><![CDATA[Python中的字典（Java中的Map）]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/147310990</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/147310990</guid><author>change_topic</author><pubDate>Fri, 18 Apr 2025 09:53:40 +0800</pubDate><description><![CDATA[注意：字典以键值对的形式保存，键具有唯一性，但是值可以重复，重复会覆盖之前的值。键值对形式保存，键和值用：隔开，每个键值之间用，隔开。字典名 = {键1：值1，键2：值2，....}使用键值对，存储描述一个物体的相关信息。注意：存在就修改，不存在就新增。变量名.get(键名)变量名[键名] = 值。变量名[键名] = 值。]]></description><category></category></item><item><title><![CDATA[Python中的元组]]></title><link>https://blog.youkuaiyun.com/change_topic/article/details/147277833</link><guid>https://blog.youkuaiyun.com/change_topic/article/details/147277833</guid><author>change_topic</author><pubDate>Thu, 17 Apr 2025 10:45:00 +0800</pubDate><description><![CDATA[当元组中只包含一个元素的时候，在末尾需要加上逗号，否则返回的是元组中唯一元素的数据类型。所有的元素都包含在小括号内，同时之间用逗号隔开，彼此之间可以是不同的数据类型。（1）元组内只有一个元素时末尾必须加逗号，列表则不需要。元组名 = （元素1，元素2，元素3.....）（2）格式化输出后面的（）本质上就是一个数组。（2）元组只支持查询操作，不支持增删改操作。(3)数据不可被修改，保护数据的安全。（1）作为函数的参数和返回值。3.有关元组相关的操作。2.元组和列表的区别。]]></description><category></category></item></channel></rss>