<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FSRMWK的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/FSRMWK</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; FSRMWK]]></copyright><item><title><![CDATA[【MySQL】事务管理]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/155395706</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/155395706</guid><author>FSRMWK</author><pubDate>Sun, 04 Jan 2026 20:20:18 +0800</pubDate><description><![CDATA[MySQL事务机制解析：保障数据一致性的核心方案 摘要： 本文系统阐述了MySQL事务机制及其在保障数据一致性中的关键作用。首先通过银行转账案例引出事务概念，详细解释了ACID四大特性（原子性、一致性、隔离性、持久性）。重点分析了InnoDB引擎的事务支持机制，包括事务的启动方式（显式/自动）、提交模式及回滚操作。深入探讨了四种隔离级别（读未提交、读提交、可重复读、串行化）及其对应的并发问题解决方案，特别解析了MVCC多版本并发控制原理，包括隐藏字段、历史版本链和ReadView机制。最后指出事务一致性需要]]></description><category></category></item><item><title><![CDATA[【测试报告】问卷考试系统]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/156544866</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/156544866</guid><author>FSRMWK</author><pubDate>Sun, 04 Jan 2026 07:00:00 +0800</pubDate><description><![CDATA[本文对问卷考试系统进行了全面的功能测试。该系统是一个综合性Web应用，包含问卷创建、在线考试、题库管理等核心功能模块。测试环境为Windows 11系统，使用Selenium+WebDriver进行自动化测试，覆盖了用户注册/登录、问卷/考试创建、项目管理、题库中心等主要功能。 测试发现4个主要问题：1)安全设置中密码修改功能存在严重漏洞，未对密码长度进行校验；2)模板搜索功能异常；3)新旧密码相同时仍可修改成功；4)考试编辑界面在小窗口下兼容性差。其中密码安全问题最为严重，建议优先修复。 总体而言，系统核]]></description><category></category></item><item><title><![CDATA[【项目设计】高并发内存池]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/149544558</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/149544558</guid><author>FSRMWK</author><pubDate>Tue, 12 Aug 2025 15:40:03 +0800</pubDate><description><![CDATA[高并发内存池tcmalloc是谷歌开源的多线程内存管理项目，采用三级缓存架构：ThreadCache（线程局部缓存）、CentralCache（中心缓存）和PageCache（页缓存）。核心设计包括：1）分段内存对齐策略（8B-8KB）减少内碎片；2）定长内存池通过自由链表管理回收内存；3）Span机制以页为单位管理大块内存；4）基数树实现快速地址映射。相比传统malloc，tcmalloc通过线程局部缓存避免锁竞争，采用慢开始算法动态调整批量申请数量，实现高效的多线程内存分配（最大支持256KB），内碎片]]></description><category></category></item><item><title><![CDATA[【Linux基础指令】第三期]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/145382285</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/145382285</guid><author>FSRMWK</author><pubDate>Mon, 27 Jan 2025 22:51:27 +0800</pubDate><description><![CDATA[本期博客的主题依旧是 "基础指令"；话不多说，正文开始。]]></description><category></category></item><item><title><![CDATA[【Linux基础指令】第二期]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/145076724</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/145076724</guid><author>FSRMWK</author><pubDate>Mon, 27 Jan 2025 06:00:00 +0800</pubDate><description><![CDATA[​1.cp
拷贝功能：
cp [stc] [dest]    # 将 src文件 拷贝到dest目录中
cp -r [stc] [dest]    # 将 src目录 拷贝到dest目录中
可同时拷贝多个文件（包括目录）
2.mv  
1）剪切功能：
mv  [stc] [dest]    # 将 src文件 剪切到dest目录中
mv  -r [stc] [dest]    # 将 src目录 剪切到dest目录中
可同时拷贝多个文件（包括目录）
2）重命名功能：
mv  [stc] [filename]]]></description><category></category></item><item><title><![CDATA[力扣经典二分题：4. 寻找两个正序数组的中位数]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/145059021</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/145059021</guid><author>FSRMWK</author><pubDate>Fri, 10 Jan 2025 16:40:05 +0800</pubDate><description><![CDATA[中位数左侧元素 ≤ 中位数 且 中位数右侧元素 ≥ 中位数 （以升序来看）通过合并排序的原理，通过中位数的性质，可快速得到中位数的下标，较为简单。时间复杂度为O(M+N)，空间复杂度为O(M+N)时间复杂度为O(M+N)，空间复杂度为O(1)]]></description><category></category></item><item><title><![CDATA[【Linux基础指令】第一期]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/145010756</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/145010756</guid><author>FSRMWK</author><pubDate>Wed, 08 Jan 2025 19:30:11 +0800</pubDate><description><![CDATA[Linux是一个开源的操作系统，性能、稳定性、安全性方面上都是很优秀的，所以它一直是企业后端系统的首选。所以其图形化界面并不是Linux的必需品，所以我们避免不了要使用命令行的形式来使用Linux，也就离不开指令的学习。【建议Linux的学习是已经具备了C/C++语言，或其它任意一门语言，以及重要数据结构的掌握；本期博客则由是Linux学习的第一篇，将会重点介绍Linux操作上的常见指令，旨在能够帮助大家上手Linux】]]></description><category></category></item><item><title><![CDATA[C++：右值引用与移动语义（C++11知识点——上）]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/143466861</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/143466861</guid><author>FSRMWK</author><pubDate>Sun, 10 Nov 2024 23:55:43 +0800</pubDate><description><![CDATA[左值：可以取地址，可以出现在赋值操作符的左端和右端，通常是变量和解引用的指针，其具有持久性——所有可以定位的值(可以进行取地址操作)右值：不可以取地址，只能出现在赋值操作符的右端，通常是常量、临时对象(类型转换的中间值，表达式计算结果)、匿名对象，通常其生命周期很短——指那些不持有对象身份的值。左值的缩写lv，右值的缩写为rv，现在很多人都会为lv解读为 located value(有位置的值)，将rv解读为 read value(只能读的值，反而言之不能寻其地址)。由此可见。]]></description><category></category></item><item><title><![CDATA[C++三大特性之一：多态篇【创作不易，还请点赞+收藏❤】]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/142185299</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/142185299</guid><author>FSRMWK</author><pubDate>Fri, 13 Sep 2024 18:02:10 +0800</pubDate><description><![CDATA[多态的是一个继承关系下的类对象，去调用同一函数，而产生了不同的行为。子类与父类具有函数原型相同的函数，且两个函数必须是虚函数。必须是通过基类的指针或引用调用的虚函数。说明：父类的指针或引用可以同时指向父类对象、子类对象(通过父子类之间的类型兼容赋值，是一种切片效果)。子类必须对父类的虚函数重写/覆盖，只有这样，父子类才能有不同的虚函数，多态的不同效果才能达到。public:cout ]]></description><category></category></item><item><title><![CDATA[C++：继承用法详解~]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/141472526</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/141472526</guid><author>FSRMWK</author><pubDate>Fri, 30 Aug 2024 18:33:10 +0800</pubDate><description><![CDATA[继承是C++中一种代码复用的手段，它允许我们，对已有的类，增添新的成员函数或变量，产生的新类，叫做子类。继承是一种层次结构的复用，体现了代码从简单到复杂；通过继承手段，我们可以使类得到复用。每种书的用语习惯不同，被复用的类可以称为父类也可以是基类，在此基础上产生的新类，叫做子类或派生类。继承的使用格式：class    子类名    :    继承方式    父类名。]]></description><category></category></item><item><title><![CDATA[C语言：再探C语言指针]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/140608347</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/140608347</guid><author>FSRMWK</author><pubDate>Mon, 22 Jul 2024 14:31:32 +0800</pubDate><description><![CDATA[进行复习与补充在上期我们从指针的基础概念出发，再到对常见指针类型的讲解，相比大家对与指针的理解应该不成问题。这期博客主要就是对：函数指针应用（）、函数指针数组的应用（）、等进行深入讲解。]]></description><category></category></item><item><title><![CDATA[C++：类与对象——第一期]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/140572413</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/140572413</guid><author>FSRMWK</author><pubDate>Mon, 22 Jul 2024 05:30:00 +0800</pubDate><description><![CDATA[好消息，在C++中，结构体进一步升级成为了类
C++兼容C语言中结构体的用法
类不但可以包含多个成员变量，而且可以包含成员函数（函数的声明与定义）。
成员变量又叫做类的属性，成员函数又叫做类的方法
在类中定义与声明合并的函数方法，默认是内联函数。
创建对象的时候，只需要类名即可，不用再加上类的关键字
声明类的关键字又引入一个：class（类、类型）
class与struct声明类的使用，除了默认访问限定符不一样，其余的一致。]]></description><category></category></item><item><title><![CDATA[C++：从C到C++的飞跃之旅（C++基础知识）]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/140356067</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/140356067</guid><author>FSRMWK</author><pubDate>Fri, 12 Jul 2024 14:22:17 +0800</pubDate><description><![CDATA[我们都知道，C++是C语言的前身，C++里面的很多语法，都来自于C语言，C++的语法是完全兼容于C语言的。可是，又有一个疑问？有什么问题是非C++不可的呢？下面，我们将以不破不立的原则，进而铺垫C++的基础知识，并展开讲解。namespace的本质，在用途方面，可以类似于电脑分盘(新建文件夹)，在不同的盘符(文件夹)中可以定义相同的文件标识；不同的域可以使用相同的标识符，如局部域和作用域，都可以定义变量a；在同一域中，不能出现两个或两个以上的相同的标识符。]]></description><category></category></item><item><title><![CDATA[二叉树第二期：堆的实现与应用]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/140076762</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/140076762</guid><author>FSRMWK</author><pubDate>Sun, 30 Jun 2024 15:00:19 +0800</pubDate><description><![CDATA[堆的定义：堆是一颗完全二叉树，且所有的父亲结点与子结点有相同的大小关系。大堆：所有的父亲结点的值 都比 子结点要大。小堆：所有的父亲结点的值 都比 子结点要小。上期，我们讲过，对于完全二叉树，若用数组的下标0，1，2...，从左到右依次表示第一层，第二层...，则父亲结点与子结点的关系，可用下标表示出来。而堆本身就是一种特殊的完全二叉树，所以用顺序结构表示堆，再简单不过~]]></description><category></category></item><item><title><![CDATA[二叉树第一期：树与二叉树的概念]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/139888746</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/139888746</guid><author>FSRMWK</author><pubDate>Mon, 24 Jun 2024 10:56:19 +0800</pubDate><description><![CDATA[与线性表不同，树是一种非线性的数据结构，由N(N>=0)个结点组成的具有层次关系的集合；因其形状类似生活中一颗倒挂着的树，故将其数据结构称为树。在树的定义基础上，树的度最大不超过2的(每个结点的度最大不超过2的)，即为二叉树。注：二叉树有左孩子右孩子之分。]]></description><category></category></item><item><title><![CDATA[【C语言/数据结构】队列：从概念到队列的实现]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/138957032</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/138957032</guid><author>FSRMWK</author><pubDate>Thu, 16 May 2024 15:55:49 +0800</pubDate><description><![CDATA[队列是一种特殊的线性表，只允许在一端插入数据，在另一端删除数据；插入数据的一端叫做队尾，插入数据的一端叫做队头；其有着先进先出的准则，FIFO(First In First Out)。]]></description><category></category></item><item><title><![CDATA[【数据结构】栈：从概念到两种存储结构的实现]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/138799051</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/138799051</guid><author>FSRMWK</author><pubDate>Mon, 13 May 2024 22:57:11 +0800</pubDate><description><![CDATA[避免了链表删除数据结点的时候，需要找到该结点的前一个结点；没有扩容所带来的空间的浪费与性能的消耗。栈的压栈操作，即为顺序表的尾插。栈的弹栈操作，即为顺序表的尾删。栈的压栈操作，即为链表的头插。栈的弹栈操作，即为链表的头删。缓存利用率不如顺序表高。]]></description><category></category></item><item><title><![CDATA[探索数据结构：链表的应用（带环链表的问题解决）]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/138378580</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/138378580</guid><author>FSRMWK</author><pubDate>Wed, 01 May 2024 22:47:23 +0800</pubDate><description><![CDATA[a.证明：慢指针走一步，快指针走两步一定可以？b.证明：快指针走三步、四步、....可行吗？]]></description><category></category></item><item><title><![CDATA[【C语言】贪吃蛇详解（附源码）]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/138165202</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/138165202</guid><author>FSRMWK</author><pubDate>Thu, 25 Apr 2024 19:01:08 +0800</pubDate><description><![CDATA[win32 API 的函数接口使用需要引头文件system() 库函数的使用需要引用头文件打印宽字符，必须事先本地化；你得保证自己的一切操作是windows控制台上执行的，而不是终端上面，修改方法，上边的横栏右键，点击设置，将windows终端，改为windows控制台即可~]]></description><category></category></item><item><title><![CDATA[【C语言】翻译环境与运行环境]]></title><link>https://blog.youkuaiyun.com/FSRMWK/article/details/137375800</link><guid>https://blog.youkuaiyun.com/FSRMWK/article/details/137375800</guid><author>FSRMWK</author><pubDate>Thu, 04 Apr 2024 17:27:14 +0800</pubDate><description><![CDATA[在我们学习C语言的时候，第一个接触的程序就是：在屏幕上打印” hello word!“，可当时的我们却未去深入的理解与感悟，一个程序代码是如何运行的；而这一期的博客，则是带着我们，通过C代码去理解源文件是如何生成可执行程序。首先我们得总体的知道，源文件经过编译+链接生成可执行程序；编译的目的是编译器将所有的源文件，生成一个目标文件(windows中扩展名为.obj，Linux中扩展名是.o)，目的是将C代码转换为计算机可识别的指令；]]></description><category></category></item></channel></rss>