- 博客(41)
- 收藏
- 关注
原创 Git版本控制工具(四)
本文介绍了Git多人协作实战流程:通过配置别名简化命令操作,开发者在独立分支(feature_1、feature_2)上并行开发,使用git pull同步最新代码,推送时用-u建立本地与远程分支关联。当开发者二因病中断,开发者一可拉取远程分支信息并协助开发。回归后继续提交,最终通过PR合并至master分支。此外,针对git branch -a显示已删除远程分支的问题,提出使用git remote prune origin清理本地残留分支,保持仓库整洁。
2026-10-25 22:45:37
300
原创 Git版本控制工具(三)
Git远程仓库基于分布式特性,通过GitHub/Gitee等平台实现代码托管。用户可创建远程仓库,并以HTTPS或SSH方式克隆至本地。通过git push与git pull实现代码推送与拉取,首次推送时使用-u参数建立本地与远程分支关联,提升操作效率。分支连接可通过git branch --set-upstream-to手动建立或删除。掌握远程仓库操作,是团队协作开发的基础。
2026-10-25 22:39:30
257
原创 Jenkins持续集成
持续集成通过Jenkins实现自动化构建与测试,开发人员提交代码后,Jenkins自动拉取、编译、执行测试并生成报告,通过邮件通知结果。本地部署需配置Java环境,启动jenkins.war,配置SMTP邮箱用于发送通知,并在项目中设置源码管理、构建步骤(如执行Python脚本)及触发器(如定时或轮询SCM)。支持Windows和云服务器环境,结合Cron表达式灵活调度,提升迭代效率,快速发现缺陷。
2026-10-23 19:27:36
184
原创 pytest框架
pytest是Python主流自动化测试框架,支持单元、接口、Web及App测试。其优势包括简洁断言、自动发现测试用例、参数化测试和丰富插件生态。通过@pytest.mark.parametrize可高效实现多组测试数据,结合pytest-html、pytest-xdist等插件提升报告可视化与执行效率。使用时需遵循命名规范(如test_*.py),并通过pytest.ini配置文件自定义搜索路径、标记注册及排除目录(如.venv、__pycache__),避免误扫第三方库测试,提升运行效率与稳定性。
2026-10-23 19:13:11
204
原创 Git版本控制工具(一)
本文介绍了Git在Linux(CentOS/Ubuntu)和Windows系统下的安装方法,以及基本操作流程。重点讲解了初始化仓库、配置用户信息、理解工作区、暂存区与版本库的关系,并详细说明了git add与git commit的作用:前者将修改加入暂存区,后者提交至版本库形成历史记录。通过git status查看状态,git log查询提交历史,结合.git目录中的对象机制(如commit、tree)实现版本追溯与还原,帮助开发者高效管理代码变更。
2026-10-08 21:51:40
257
原创 MCP入门到小实战
MCP(Model Context Protocol)是连接大模型与工具的通信协议,类似AI世界的“USB接口”。它使LLM无需重复开发插件,即可通过自然语言调用数据库、文件系统、API等工具。在Cursor中,可通过配置mcp.json添加本地或远程MCP Server,利用uvx或npx启动服务,实现跨工具协作。例如,结合高德地图、MySQL与文件系统MCP Server,仅凭一句提示即可生成成都至北京五日出行攻略,极大提升AI应用效率与灵活性。
2026-10-08 19:17:54
158
原创 多语言聊天大模型--测试报告
本文介绍了基于C/C++的多模型流式智能对话系统在阿里云Ubuntu服务器上的部署流程。项目使用嵌入式SQLite数据库,通过cmake与make编译生成可执行文件,配置systemd实现服务自启与后台运行。关键步骤包括环境依赖安装、数据库权限设置、服务配置及端口监听验证。上线后通过浏览器访问8000端口测试Web功能,并利用sqlite3工具检查数据库状态。同时完成功能、接口与性能测试,确保登录、会话记忆、模型切换及流式输出等核心功能正常。
2026-10-08 18:14:45
238
原创 基于JMeter工具的性能测试(接口)
本文是一篇面向初学者的 JMeter 性能测试实战教程,系统讲解了性能测试的基础概念与完整操作流程:先介绍性能测试的定义及并发用户数、吞吐量/TPS/QPS、响应时间、资源利用率等核心指标,再分类讲解基准、负载、压力、并发、稳定性及容量测试的区别,最后以博客系统为例,手把手演示了从安装配置 JMeter、搭建线程组与 HTTP 取样器、使用 CSV 数据文件与 JSON 提取器/断言处理动态参数,到安装插件、开展梯度压测并生成性能测试报告的全过程,并从响应时间、错误率、吞吐量三个维度指导读者进行性能分析。
2026-09-19 14:58:17
227
原创 【Python】获取调用的方法名的函数
通过sys._getframe()可获取当前执行方法名,sys._getframe(1).f_code.co_name则能获取调用者方法名。该机制基于调用栈帧,性能高效,适用于调试、日志记录等场景,是Python中获取运行时函数信息的轻量级方案。
2026-09-19 14:38:41
155
原创 搭建项目测试环境
本文总结了搭建Linux环境常用命令,涵盖网络检测、文件查找与操作、权限管理、软件安装、进程监控、端口查看及日志分析等核心技能。结合电商项目部署流程,详细说明了服务器连接、依赖安装、项目上传解压、配置文件修改与Nginx重启等步骤,强调通过yum、systemctl、grep、tail等指令实现高效环境搭建与故障排查,为开发环境部署提供完整指导。
2026-09-19 14:16:57
176
原创 【Linux】一切皆文件的理解 && 缓冲区 && 简易设计libc库
Linux系统采用"一切皆文件"的设计理念,将硬件设备、进程、管道等抽象为文件,通过统一的文件接口(如read/write)访问。其核心机制是VFS(虚拟文件系统),利用struct file结构体和file_operations函数指针实现底层差异屏蔽,使上层通过文件描述符统一操作。缓冲区机制通过内存空间暂存I/O数据,减少磁盘访问次数,分为全缓冲(填满触发)、行缓冲(换行触发)和无缓冲(立即输出)三种类型,显著提升系统性能。该设计使开发者仅需一套API即可操作绝大多数系统资源,极大简
2026-02-03 21:18:59
722
原创 【Linux】文件操作&&重定向原理
摘要:本文介绍了C语言中文件操作的两种方式:库函数(如fopen、fwrite)和系统调用(如open、write)。重点分析了系统调用open、write、read的使用方法、参数含义及返回值特性。通过代码示例展示了如何用系统调用实现文件读写操作,并解释了'\0'在文件存储中不必要的原因。文章还涉及文件路径、权限掩码设置等细节,帮助理解底层文件I/O的工作原理。
2026-01-28 14:30:53
884
原创 【C++】关于list的使用&&底层实现
本文介绍了C++中list容器的基本特性和使用方法。list是一种基于双向链表实现的序列容器,支持高效的双向迭代以及在任意位置进行常数时间的插入和删除操作,但不支持随机访问。文章详细讲解了list的构造函数、迭代器分类(正向/反向迭代器)、容量查询、元素访问方法以及常用修改操作(push_back、pop_back、insert等)。特别强调了list独有的操作如reverse、sort等,并指出由于底层结构限制,list不能使用算法库中的sort函数。通过多个代码示例展示了list的基本操作和应用场景,同
2025-11-04 17:04:00
926
原创 【Linux】 第一个系统程序——进度条
本文介绍了计算机中的回车换行概念及其在C语言中的实现,解释了缓冲区的作用以及如何通过\n和fflush控制输出刷新。文章还演示了简易倒计时程序和进度条的实现原理,包括字符数组的构建、旋转图标的显示以及进度百分比的计算。最后通过实际代码展示了真实场景下进度条的应用,模拟了下载过程中的进度显示效果。这些内容为理解C语言中的输出控制和动态显示提供了实用指导。
2025-10-27 20:47:10
678
2
原创 【Linux】自动化构建工具--make/Makefile
本文介绍了Linux中的自动化构建工具make/Makefile,重点讲解了其工作原理和使用方法。主要内容包括:1. make和Makefile的基本概念及优势,能极大提高编译效率;2. 依赖关系和依赖方法的定义与实现;3. make的自动化推导过程和执行机制;4. 项目清理和.PHONY伪目标的使用;5. 文件修改检测机制和重新编译条件;6. 单文件和多文件的Makefile编写方法。文章通过实例和类比,详细说明了如何利用make/Makefile实现自动化编译,并提供了实用的Makefile模板,适合L
2025-10-24 23:34:25
1046
2
原创 【Linux】gcc/g++编辑器 && 初识动静态库 && 程序翻译过程
本文介绍了Linux下gcc/g++编译器的使用及程序的翻译过程,重点讲解了预处理、编译、汇编、链接四个阶段的功能和命令选项。文章详细解析了动静态库的区别:静态链接将库代码复制到可执行文件中,而动态链接仅在运行时加载共享库。通过示例对比了动静态链接生成文件的大小差异,并解释了动态库的共享特性和重要性。最后指出gcc默认采用动态链接,并强调了动态库在多程序共享中的优势及其不可缺失的特性。
2025-10-22 10:38:48
944
2
原创 【C++】探秘vector的底层实现
删除vector任意位置上元素时,该位置的迭代器都会失效。这是 vector 作为连续容器的特性所决定的(与 list 等链表容器的迭代器行为不同)。对于迭代器失效,我们可以使用erase的返回值更新迭代器,也就是重新建立迭代器与元素之间的有效位置关系。
2025-10-17 17:14:58
999
2
原创 【C++】vector常用接口的使用
是一种,用于表示大小可动态变化的数组。与普通数组类似,vector 的元素也存储在中。这意味着其访问效率与普通数组完全一致。但与普通数组不同的是,vector 的大小可以动态改变,其内存空间由容器自动管理。在内部实现上,vector 会使用来存储元素。当插入新元素导致 vector 需要扩容时,容器可能会重新分配内存 —— 即分配一块新的数组空间,并将所有元素移动到新空间中。这种操作的时间开销相对较大,因此 vector 并不会在每次添加元素时都执行重新分配。相反,vector 容器会预先分配。
2025-10-14 23:00:00
1590
原创 【C++】探秘string的底层实现
本文详细介绍了C++中string类的模拟实现,主要包括成员变量(字符指针、字符串长度和容量)和各种成员函数的设计。重点讲解了构造函数、析构函数、操作符重载([]、+=、=等)、迭代器模拟、字符串操作函数(插入、删除、查找、截取等)的实现原理和注意事项。作者通过具体代码示例和内存分析,阐述了深拷贝、内存管理、函数重载等关键概念,并比较了不同实现方式的优缺点。最后还讨论了比较运算符的全局重载实现和友元函数的使用。文章内容详实,对理解string类的底层实现很有帮助。
2025-10-09 23:51:04
1077
2
原创 【Linux】Vim高效编辑:从入门到精通
Vim是一款高效的命令行文本编辑器,核心优势在于键盘驱动的快速操作和强大的可扩展性。它包含三种基本模式:命令模式(默认)、插入模式(输入文本)和底行模式(执行复杂命令),通过快捷键可快速切换。常用功能包括:光标移动(h/j/k/l)、复制粘贴(yy/p)、撤销(u)、查找替换(/)等。用户可通过.vimrc文件自定义配置,如显示行号(set nu)或安装插件增强功能。Vim特别适合编程和服务器环境,通过熟练使用其命令组合可显著提升文本编辑效率。
2025-10-09 00:45:00
980
原创 Linux权限管理全解析
《Linux权限管理全解析》摘要(149字) 本文系统讲解了Linux权限机制,涵盖用户角色(root/普通用户)、文件权限(rwx)及目录权限管理。核心内容包括:权限=角色+属性,通过chmod/chown命令修改权限属性与归属;umask掩码对默认权限的影响;目录可执行权限的特殊性;以及粘滞位(t)在共享目录中的安全防护作用。文章强调权限管理的本质是控制用户行为,重点分析了root特权、权限匹配规则和文件删除权限的目录依赖性,为Linux系统安全操作提供了全面指导。
2025-10-04 17:18:37
946
原创 Linux入门指南:从零掌握基础指令
本文介绍了Linux操作系统的基本概念和常用指令。Linux由林纳斯·托瓦兹于1991年创建,采用开源模式。文章详细讲解了20多个常用Linux指令,如mkdir、ls、cd、rm等文件操作指令,以及grep、find等文本处理指令。同时介绍了重定向、管道等高级功能,并解释了shell的工作原理。文章还比较了开源和闭源系统的区别,强调了Linux文件系统的树形结构特点。通过具体示例演示了各指令的实际应用,帮助读者快速掌握Linux基础操作。
2025-09-30 17:29:16
960
原创 【C++】string类的常见接口的使用
本文是一篇关于C++中string类的详细指南,主要介绍了string类的常见接口使用方法。文章首先介绍了string的基本概念和构造函数,然后详细讲解了容量接口、遍历元素的方法(包括operator[]、迭代器和范围for循环),以及与字符串修改相关的操作(如append、erase等)。此外,还探讨了查找功能、c_str()转换和substr截取等实用接口。文章通过代码示例展示了不同编译器的扩容机制差异,并提供了性能优化建议。最后介绍了string类的非成员函数,如operator+和getline。本
2025-09-27 23:17:41
1092
原创 【C++】初识模板
本文介绍了C++中的泛型编程和模板机制。主要内容包括: 函数模板的原理与使用,通过模板实现通用交换函数,解决代码复用问题; 模板实例化的两种方式:隐式实例化和显式实例化; 类模板的定义与实现,以栈类为例展示类模板的应用; 模板声明与定义分离时的注意事项。文章通过生动的类比和代码示例,解释了模板如何提高代码复用率和可维护性,是C++泛型编程的重要基础。
2025-09-21 15:26:44
1164
2
原创 探秘C++内存管理与new/delete原理
本文系统介绍了C/C++内存管理机制。首先分析了内存分布(栈区、堆区、数据段、代码段)并通过代码示例说明变量存储位置。重点讲解了C++的new/delete操作符:对于内置类型类似malloc/free;对自定义类型会调用构造/析构函数,并比较了C与C++实现链表的差异。详细解析了operator new/delete底层实现原理,强调new/delete必须匹配使用。最后对比了malloc/free与new/delete的区别:new/delete是操作符,支持初始化、自动调用构造/析构函数,失败时抛异常
2025-09-20 14:24:15
848
原创 C++构造函数与static成员深度解析
本文深入探讨了C++中构造函数与static成员的核心概念。在构造函数部分,详细解析了初始化列表的特性与使用场景,强调const成员、引用成员和没有默认构造的类成员必须在初始化列表初始化。static成员章节重点阐述了静态成员变量和函数的共享特性、生命周期及访问方式,并通过编程实例展示了静态成员的实用价值。文章还涉及类型转换、友元关系、内部类等进阶内容,结合代码示例分析了编译器对对象拷贝的优化策略。全文内容丰富,层次清晰,既包含基础理论讲解,又提供实际应用案例,适合C++学习者系统掌握相关知识点。
2025-09-14 23:22:39
1130
1
原创 【C++】日期类运算符重载实战
本文介绍了在C++中实现日期计算器的完整过程,重点讲解了运算符重载技术。文章从日期类框架搭建开始,详细说明了如何重载+、-、+=、-=等算术运算符,以及关系运算符、前后置++/--等操作。特别说明了日期相减功能和流操作符(<<、>>)重载的实现技巧,并提供了完整的源码实现。通过这个案例,读者可以学习到如何通过运算符重载使自定义类型支持内置类型般的操作,同时掌握日期处理中的进位/借位逻辑判断。文章强调代码复用和效率优化,展示了C++面向对象编程的实践应用。
2025-09-12 20:14:27
1021
原创 类的六大默认成员函数解析(超详细)
摘要: 本文详细介绍了C++类的六大默认成员函数,重点分析了构造函数、析构函数、拷贝构造函数和赋值运算符重载的核心特性与实现要点。通过Stack和Date类实例,阐述了构造函数初始化对象、析构函数资源清理、拷贝构造的深浅拷贝区别,以及赋值重载的连续赋值特性。文章强调对于涉及资源管理的类必须显式实现析构函数、拷贝构造和赋值重载,以避免内存问题。同时简要说明了const成员函数和取地址重载的应用场景,为理解C++类的核心机制提供了系统性的指导。全文结合代码示例,深入浅出地解析了各类成员函数的使用场景和注意事项。
2025-09-11 11:49:46
781
原创 C++类的奥秘:从结构体到this指针
本文主要介绍了C++中类的概念及相关特性。首先通过对比C语言结构体,阐述了类的定义方式及其特点,包括成员变量和成员函数的封装。其次讲解了访问限定符的作用和类域的概念,说明成员函数的声明与定义分离方法。接着详细介绍了类的实例化过程,分析了类对象大小的计算规则(与结构体类似但不包含成员函数),并指出空类占用1字节的特殊情况。最后重点解析了this指针的原理,说明它是成员函数的隐藏参数,通过寄存器传递当前对象地址,并分析了this指针为空时的特殊情况。全文通过代码示例和底层汇编分析,深入浅出地讲解了C++类的核心
2025-09-08 19:33:24
1069
原创 C++改进C语言的七大方面
C++在兼容C语言的基础上进行了多项重要改进。针对C语言在大型项目中的不足,C++引入了命名空间(namespace)解决全局变量冲突问题,支持嵌套定义和多文件合并。通过cin/cout简化输入输出,支持自动类型识别。新增了缺省参数、函数重载等特性,提高了代码灵活性。引用(reference)机制作为指针的补充,简化了参数传递和返回值处理。内联函数(inline)取代了易错的宏定义,nullptr关键字解决了NULL的二义性问题。这些改进使C++成为更强大、安全的面向对象编程语言,适用于大型项目开发。
2025-09-07 14:26:53
1068
原创 深入理解数据结构:栈与队列详解
本文详细介绍了栈和队列两种数据结构的概念、实现原理及完整代码。栈是一种遵循后进先出(LIFO)原则的线性表,使用数组实现更优,包含初始化、入栈、出栈等基本操作。队列则是先进先出(FIFO)的线性表,更适合用链表实现,文中给出了队列节点结构体设计及入队、出队等关键操作。两种数据结构均提供了完整的C语言实现代码(Stack.h/Stack.c和Queue.h/Queue.c),包括初始化、销毁、数据操作等功能函数,并通过测试用例演示了具体使用方法。文章最后附有完整项目代码,可供读者参考实现。
2025-09-06 20:09:07
639
原创 【数据结构】单链表
本文介绍了单链表的基本概念、实现方法及其与顺序表的区别。单链表通过节点指针实现逻辑上的连续性,能有效解决顺序表中插入效率低、空间浪费等问题。文章详细讲解了单链表的创建、初始化、增删查改等操作,重点分析了尾插、头插、尾删、头删等关键操作的实现逻辑,并强调了二级指针在修改头指针时的重要性。同时提供了单链表的完整实现代码,包括节点创建、链表打印、查找、插入删除等函数。最后总结了链表的特性,指出链表操作需要注意指针传递和内存管理问题。通过火车车厢的类比,帮助读者理解链表节点间的连接原理。
2025-07-25 15:37:10
790
原创 【数据结构】顺序表
线性表是n个具有的数据元素的有限序列。它是一种广泛使用的数据结构。常见的数据结构:顺序表、链表、栈、队列、字符串...线性表在,也就说是连续的一条直线,比如:我们在商场买东西要排队结账,那长长的队伍就是线性的,当然,有时候队伍不是一条直线,歪歪扭扭的,我们人为的把它抽象成线性的。但是,在顺序表在物理结构上连续,链表在物理结构上不连续。顺序表顺序表底层就是数组,只不过它比数组更高级了。
2025-07-24 12:17:43
1252
原创 C语言--移位操作符和位操作符应用
C语言中有很多操作符,可能初学者对移位操作符和位操作符不是太了解,但是在嵌入式开发中对移位操作符和位操作符的应用非常多。所以本博客主要讲解移位操作符和位操作符的编程应用。移位操作符和位操作符的使用,可以让一些问题变得非常简便。但是有时候并不容易想到,只要我们勤于练习,定能把它使用的游刃有余。
2025-05-31 17:51:12
975
原创 C语言--表达式求值详解
这部分知识很多C语言书上都没有,但是这部分知识同样很重要,能让我们更好的理解C语言。我们知道计算表达式的时候会遵循计算规则,比如:在计算3+5*2的时候,先算乘法再算加法。同样在C语言中也有计算规则,它是由操作符的属性决定的。优先级和结合性。比如:我们用C语言写代码去计算:3+4*5由于乘法的优先级⾼于加法,所以会先计算 4 * 5 ,⽽不是先计算 3 + 4。但是对于用C语言写代码去计算: 5 * 6 / 2两个运算符优先级相同了,这时候就要看结合性。
2025-05-27 15:42:14
1211
原创 C语言--二分查找
一定要注意二分查找的使用前提是有序数组的查找;不是有数组就不适用了。如果我们对二分查找不熟悉,我们在写代码前,先画图分析一下,再去用代码实现,这样可以避免很多因为粗心而犯错,会起到事半功倍的效果。如果本博客对你有一点帮助,请帮我点一个赞呗~
2025-05-26 23:41:25
1080
原创 C语言—函数递归经典问题
本博客讲解几个递归经典问题,包括递归的效率问题、汉诺塔问题、青蛙跳台阶问题。以帮助你更好的理解并使用递归。那么何为递归呢?递归就是函数自己调用自己。其中递就是递推归就是回归的意思。接下来慢慢体会。总之,有些问题想到递归效率很高,但有些题目递归效率很低,还要注意递归层次太深,会浪费大多的栈帧空间,可能会引起栈溢出的问题。最后,使用递归应适可而止,还是那就话:递归只应天上有,迭代凡人用得欢。
2025-05-19 14:45:07
1168
原创 C语言——手把手带你实现扫雷游戏(基础版)
本博客。本游戏使用分文件编写,也可以不分文件编写,但是对于大型项目来说,,一虽然分文件编写对于初学者较为困难,但是我们也要逐步适应这种方式。
2025-05-13 19:35:24
833
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅