- 博客(168)
- 收藏
- 关注
原创 Linux 修炼:进程概念(中)
本文系统介绍了操作系统中的进程状态管理机制。首先概述了进程的常见状态(新建、就绪、运行、阻塞、终止、挂起)及其转换关系,特别说明了Linux系统中特有的状态表示(R运行、S睡眠、D磁盘睡眠、T停止等)。文章深入解析了僵尸进程、孤儿进程的形成原理,以及进程优先级调整机制(PRI和nice值的关系)。最后详细阐述了进程切换的上下文保存恢复过程,并介绍了Linux采用的O(1)调度算法,通过双队列结构和位图实现高效调度。全文结合代码示例和系统命令演示,全面呈现了进程管理的核心原理。
2025-07-27 16:44:59
725
1
原创 Git 完全手册:从入门到团队协作实战(4)
本文介绍了Git团队协作开发的两个场景:1)同分支下多人修改同一文件的冲突处理方法;2)不同分支下多人并行开发的协作流程。文章详细讲解了分支管理、远程仓库同步、冲突解决等关键操作。此外,还介绍了企业级开发模型,包括DevOps理念、开发环境划分、GitFlow分支设计和Gitee企业版DevOps平台的使用方法。通过具体命令演示和场景模拟,帮助开发者掌握团队协作中的版本控制技巧和企业级开发流程。
2025-07-23 16:05:23
997
1
原创 Linux修炼:进程概念(上)
本文介绍了计算机系统的基础知识,包括冯诺依曼体系结构、操作系统和进程管理。冯诺依曼体系由运算器、控制器、存储器、输入设备和输出设备组成,采用二进制编码和存储程序控制原理。操作系统作为软硬件资源管理软件,通过分层架构协调硬件与应用交互。进程是程序执行的动态实例,由程序代码、数据和进程控制块(PCB)组成,在Linux系统中通过task_struct实现。文章还演示了使用fork创建子进程的方法,子进程会继承父进程的task_struct模板。这些概念构成了现代计算机系统的核心框架。
2025-07-23 16:04:12
1063
原创 Git 完全手册:从入门到团队协作实战(3)
本文介绍了Git远程操作与标签管理的实用技巧。首先讲解了SSH协议克隆仓库的方法,包括生成SSH密钥和添加公钥到远端仓库的步骤;其次介绍了推送与拉取分支的操作命令。文章还分享了给Git命令配置别名的两种方式,可以简化日常操作。在标签管理部分,详细说明了如何创建、查看、推送和删除标签,包括本地与远端标签的同步操作。这些Git进阶技巧能帮助开发者更高效地进行版本控制和代码管理。
2025-07-21 10:21:29
795
2
原创 Linux修炼:gdb/cgdb
【GDB/CGDB调试工具使用指南】本文介绍了Linux系统下常用的程序调试工具GDB和CGDB。GDB是GNU开发的跨平台调试器,支持多种编程语言。文章首先讲解如何安装GDB和CGDB,并强调调试需要编译debug版本程序(使用-g选项)。接着详细介绍了CGDB的使用方法,包括查看代码、设置/管理断点、单步调试、变量监视等常用调试命令。特别说明了watch命令可以监控变量变化,bt命令查看调用堆栈等实用技巧。最后指出GDB/CGDB会记录上一条命令,按回车即可重复执行。
2025-07-21 10:20:09
842
原创 我的创作纪念日
作者回顾了在CSDN平台近一年的成长历程。从最初通过CSDN解决编程问题,到主动分享技术博客,记录了从C语言到Linux的学习轨迹。虽然粉丝量不及大V,但1700位关注者已让作者倍感鼓舞。文章分享了"学习+写博客"的复习模式,认为这种方式虽然效率不高但效果稳固。作者展望未来,希望博客能成为职业发展的加分项,并期待通过平台结识更多行业专家。最后表达了继续坚持写作、像登山一样逐步实现目标的决心,将每篇博客视为进步的阶梯。
2025-07-19 19:02:15
354
原创 Git 完全手册:从入门到团队协作实战(2)
本文详细介绍了Git版本控制和分支管理的关键操作。主要内容包括:1)版本回退的不同方式和注意事项,如使用git reset和git revert命令;2)撤销修改的三种情况及对应解决方案;3)分支管理的基础操作(创建、切换、合并、删除)和高级应用(合并冲突处理、no-ff模式、bug分支修复技巧)。文章特别强调了对远程仓库的安全操作方式,并提供了实际场景下的最佳实践建议,如使用git stash暂存未完成的工作来处理紧急bug修复。
2025-07-19 18:01:33
1419
9
原创 数据结构与算法之美:拓扑排序
拓扑排序是对有向无环图(DAG)的顶点进行线性排序,使得对于图中的每一条有向边 (u, v),顶点 u 在排序中总是位于顶点 v 的前面。常用于任务调度、依赖解析等场景。简单来说,拓扑排序就是每次从入度为0的点开始,每次都走入度为0的点,直到遍历完所有的顶点。拓扑排序只适用于有向无环图,并且,拓扑排序的结果可能不唯一。
2025-07-19 17:49:57
918
9
原创 C++修炼:IO流
本文介绍了C++ IO流的相关知识,主要包括:1. C++ IO库通过继承体系实现,支持标准IO流、文件IO流和字符串IO流;2. IO流状态管理,包括goodbit、eofbit、failbit和badbit四种状态,以及如何恢复错误状态;3. 输出缓冲区的管理机制和触发刷新的五种情况;4. 标准IO流的使用方法;5. 文件IO流的分类(ofstream、ifstream、fstream)和多种文件打开方式;6. 字符串IO流的使用方法
2025-07-16 20:50:14
1144
7
原创 Git 完全手册:从入门到团队协作实战(1)
这篇博客介绍了Git版本控制系统的基础知识和使用方法。主要内容包括:1)Git的基本概念和历史背景;2)Git的工作流程(本地修改、暂存、提交、推送等);3)如何搭建Git仓库并进行基础操作(clone、add、commit、push等);4)常用Git命令介绍(log、status、diff等)。文章通过实际案例讲解了版本控制的重要性,并详细演示了从创建仓库到提交代码的完整流程,适合初学者快速入门Git版本控制工具。
2025-07-16 11:46:52
733
2
原创 C++修炼:C++中的类型转换
本文系统介绍了C++中的类型转换机制,主要内容包括:1. C语言类型转换回顾,包括隐式和显式转换;2. C++新增的类型转换特性,如内置类型与自定义类型间的转换(通过构造函数和operator函数实现);3. C++四种显式强制类型转换运算符:static_cast(常规转换)、reinterpret_cast(低级别转换)、const_cast(const属性操作)和dynamic_cast(多态类型安全转换);4. RTTI(运行时类型信息)机制及其应用。
2025-07-14 20:00:33
810
2
原创 Linux修炼:开发工具
本文介绍了Linux系统下的软件安装方法和开发环境配置。主要内容包括:1) Linux软件安装的三种方式(源码安装、rpm安装、yum/apt工具安装),重点推荐使用yum/apt自动解决依赖关系;2) vim文本编辑器的五种模式及常用命令,包括命令模式、底行模式等,以及.vimrc配置文件的使用;3) gcc/g++编译器的使用,详细说明从源代码到可执行程序的四个阶段(预处理、编译、汇编、链接),并比较动态链接和静态链接的区别;4) 简要分析Linux生态的重要性。
2025-07-13 15:31:08
1275
9
原创 数据结构与算法之美:跳表
本文介绍了跳表(SkipList)这一高效数据结构。跳表通过多层概率性索引结构,将有序链表的查询、插入和删除操作时间复杂度优化至O(logn)。文章详细讲解了跳表的基本原理:底层包含所有元素,上层逐步稀疏;通过随机生成层数实现高效查找。随后给出了C++实现方案,包括节点结构、查找算法、随机层数生成、插入删除操作等核心代码实现。最后分析了跳表的性能特点:时间复杂度O(logn),空间复杂度O(n),实现简单且适合高并发场景。跳表是平衡树的轻量级替代方案,广泛应用于Redis等系统。
2025-07-12 22:30:42
941
1
原创 数据结构与算法之美:线索二叉树
摘要:本文详细介绍了线索二叉树的概念、结构和操作方法。线索二叉树通过利用空指针域存储前驱/后继信息,实现了无需递归或栈的高效遍历。文章讲解了节点结构、构建过程(包括线索化代码)、遍历算法,以及插入删除操作的注意事项。最后分析了线索二叉树的优缺点:优点是节省空间、遍历高效,缺点是操作复杂度较高。线索二叉树是普通二叉树的优化版本,适用于需要频繁遍历的场景。
2025-07-12 22:30:09
464
原创 Linux修炼:权限
本文介绍了Linux系统中的文件权限管理机制。主要内容包括:1) Linux通过文件属性列(如-、d、l等)而非后缀名区分文件类型;2) Linux支持多用户登录,通过adduser/userdel管理用户,root与普通用户权限差异显著;3) 文件权限分为rwx三种,对应拥有者、所属组和其他用户三类身份;4) 使用chmod/chown命令修改权限和所有者;5) 目录权限的特殊性(r查看、w修改、x进入)及umask机制对默认权限的影响。
2025-07-11 17:03:50
913
2
原创 数据结构与算法之美:索引表
本文介绍了索引表的概念与应用,重点讲解了索引表的核心作用、常见类型(B树、哈希、全文索引)及优缺点,并给出使用建议。通过C++代码示例展示了哈希表索引的简单实现,包括性能优化和扩展功能(动态调整、范围查询)。最后指出索引表在数据库等场景的实际应用,强调合理选择数据结构对提升查询效率的重要性。文章提供了从理论到实践的完整索引表知识框架。
2025-07-11 17:03:07
298
原创 数据结构与算法之美:广义表
本文介绍了广义表的基本概念与实现。广义表是一种非线性数据结构,允许元素为原子或子表,具有递归嵌套特性。文章详细讲解了广义表的定义、表示方法(如(a,(b,c),d))、存储结构(带tag标识的链式节点)和基本操作(创建、求长度/深度、遍历等)。通过C++代码示例展示了广义表类的实现,包括节点结构、递归创建/销毁方法以及测试用例。最后对比了广义表与线性表的区别,并列举了广义表在文件目录、多项式存储等场景的应用。广义表虽实现复杂,但为层次化数据提供了灵活解决方案。
2025-07-10 16:48:23
923
7
原创 Linux修炼:基础指令
本文介绍了Linux操作系统的基础知识及常用命令。首先概述了Linux的特点(开源、多用户、高稳定性等)和主要发行版(Ubuntu、CentOS等)。然后详细讲解了20多个基础命令的使用方法,包括文件操作(ls、cd、mkdir)、文件处理(cat、grep)、压缩解压(zip、tar)以及系统管理(shutdown、history)等。文章还提供了常见热键操作技巧,如Tab补全、Ctrl+C终止程序等。适合Linux初学者快速掌握基本操作,为后续学习打下基础。所有示例基于CentOS 7环境演示。
2025-07-10 15:40:34
882
5
原创 数据结构与算法之美:LRU Cache
因为优先使用的我们要放到链表的最开始,所以说我们先通过哈希表判断这个值在不在list里,如果在的话,我们把这个值调整到链表最开始。_LRUList中存储数据访问顺序,_hashMap存储每个数据的key值对应的迭代器,以便于实现快速调整。通过双向链表维护访问顺序,结合哈希表实现高效查询,LRU Cache 在有限空间内最大化缓存命中率。
2025-06-28 16:16:22
672
4
原创 数据结构与算法之美:并查集
摘要:本文介绍了并查集数据结构及其实现。并查集主要用于处理不相交集合的合并与查询,支持Find和Union操作。文章详细讲解了初始化、查找(含路径压缩优化)和合并(含按秩合并优化)的实现方法,并提供了C++代码示例。此外还介绍了判断元素是否同属一个集合和计算集合数量的操作。通过优化,并查集的操作时间复杂度可接近常数级
2025-06-27 15:51:42
618
4
原创 C++修炼:异常
本文详细讲解了C++异常处理机制。主要内容包括:1. 异常的基本概念和原理,通过throw抛出异常,try-catch捕获处理;2. 异常栈展开机制,异常对象生命周期;3. 异常匹配规则,包括基类派生类多态捕获;4. 异常安全问题和内存泄漏风险;5. 标准库异常体系和使用方法;6. 异常重新抛出和noexcept规范。文章通过代码示例展示了除法异常、类继承异常、内存泄漏等典型场景,并提供了标准库异常类和自定义异常的实现方式。最后补充了异常重新抛出的应用场景。
2025-06-24 11:32:24
990
4
原创 题海拾贝:P1208 [USACO1.3] 混合牛奶 Mixing Milk
在线课程:Coursera的《Algorithms Specialization》(Stanford)、MIT OpenCourseWare。- 编程基础:至少掌握一门语言(如Python、C++或Java),熟悉循环、递归、数据结构(数组、链表、树等)。- 刷题平台:LeetCode(按难度分类)、Codeforces(竞赛向)、HackerRank(基础巩固)。- 数学基础:离散数学、概率论、线性代数(尤其是图论、递归、时间复杂度分析)。- 尝试用算法解决生活问题(如用动态规划优化个人时间安排)。
2025-05-28 17:23:58
814
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人