自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 时间轮设计和正则表达式使用方法

我们先不来讲解什么是时间轮,我们先来讲解一下我们在写代码的时候我们可能遇到的问题。我们需要实现一个功能:模拟实现闹钟的工作方式来定时完成一些任务,并且需要设计一个延迟执行、取消执行等功能。我们应该怎么实现这个功能呢?这个看起来功能看起来实现是无从下手的。但是我们如果了解时间轮的话,我们就可以有一点头绪了。简单来说这个就是我们来解决字符串处理的工具。更加具体的来说就是这个工具能够在我们提供的字符串中提取到我们想要的部分。那么这有什么用呢?实际上这个工具的用处超级的大。

2026-09-23 21:15:13 329 29

原创 深入理解TCP协议----滑动窗口,流量控制

在上一篇的文章中,我们认识到了TCP协议的结构.总的来说,TCP协议通过源端口号和目的端口号分别来标识自己的出发点和目的地,并且通过序号来表明自己这次发送的数据也通过确认序号来交给对方自己收到的数据.由于TCP协议的报头的长度不是一个固定的值,所以依靠一个名为4位首部长度的字段来记录报头的长度,实现数据和报头的分隔.了解到TCP的可靠性是通过序号和确认应答,超时重传来保证的.今天我们来继续学习TCP协议的知识.

2026-09-19 11:16:20 735 25

原创 TCP协议讲解-----了解TCP可靠性的基石

我们熟知的传输层协议有 UDP 和 TCP。UDP 我们知道他的优点就是简单高效。相较于UDP,TCP的优点就是连接更加稳定。但是我们这些概念只是道听途说,并不知道TCP连接的稳定性到底是怎么保证的。今天我们就深入到 TCP 的原理中,逐步剖析 TCP 的核心。我们先来看这一张图片我们从上述的这张图片中,我们可以知道的是:我们在进行通信的时候,我们调用的 write、read 这种的系统调用是直接从网络中获取到的信息吗?不是的.它们只是从自己的本地缓冲区中拷贝过来的。

2026-09-15 19:00:46 492 18

原创 MySQL系列-----基本查询

在上述中,我们知道了在MySQL中对表的约束的条件之后.但是其实我们现在的知识并不知道怎么在表中插入数据的.今天我们就来了解一下有关表的操作.

2026-09-08 21:59:28 641 30

原创 Git入门:从版本管理到本地仓库基本操作

现在我们假想一个场景:实验课的老师布置了一个作业——写一份实验报告。我们很快写完了第一版,并把实验报告交给老师查看。老师看完后说:“这里还有一些地方需要修改。于是我们直接在原来的实验报告上进行修改,得到了第二版。我们拿着第二版去找老师,结果老师还是不满意。没办法,我们继续修改,又得到了第三版。这时候老师突然说:“其实你第二版里面有些内容写得挺好的,你把第二版和现在这一版结合一下。我们现在手里只有第三版,第二版早就被覆盖掉了。

2026-09-01 11:12:09 938 30

原创 MySQL表的约束详解

在上一篇的文章中我们简单的了解了对表的操作,也认识了在MySQL中的数据类型.但是在上一篇文章中我们遗留了一些问题今天我们来详细的讲解一下这个表中的知识点.这些都是对表的约束.表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary key,auto_increment,unique key。

2026-08-26 20:18:20 513 18

原创 MySQL表的操作与数据类型详解

在上一篇文章中,我们了解了如何对数据库进行操作。这一篇文章我们继续学习数据库中非常重要的一部分内容:如何操作数据库中的表;如何创建、查看、修改和删除表;MySQL 中常见的数据类型;enum和set类型的使用。表就好像是我们 C 语言中的结构体,里面可以存储不同类型的数据。这一篇文章我们主要学习了 MySQL 中表的基本操作和常见数据类型。

2026-08-25 23:24:43 332 29

原创 MySQL数据库基础教学

伴随着我们的知识的增长,有时候我们需要对用户的数据进行存储.我们可以在我们当地的文件中存储文件,但是这样难免是过于复杂了,我们急需一种有效存储和读取数据的能力.下面我们就展开我们数据库的学习之旅.QL Sever: 微软的产品,.Net程序员的最爱,中大型项目。Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电 商,SNS,论坛。对简单的SQL处理效果好。

2026-08-20 21:40:53 868 21

原创 负载均衡式在线OJ---------第二幕

我们目前的项目知识简单的实现了代码的编译的功能,显而易见的是我们还需要代码的运行的功能.今天我们的任务就是来实现一下项目中的代码运行的模块。

2026-08-13 14:41:43 388 38

原创 负载均衡式在线OJ---------(开工)

我们在训练算法能力的时候,我们就会不约而同的进入到自己中意的刷题平台.我们的接下来的目标就是模仿实现这些平台的一些子功能----(在线编程功能)实现的思路是这样的:实现出一个服务器,这个服务器的功能仅仅是提供网页的转换等简单的服务实现出额外的服务器来进行对用户提交的代码进行编译运行返回出运行的结果.我们实现出的oj_server服务器将会选择出可以处理代码编译和运行工作量最少的服务器(也就是负载均衡)comm :公共模块:在这个模块中我们将会实现一些项目通用的方法,例如:字符串的拼接。

2026-08-04 18:28:25 238 2

原创 进程间通信

我们把从⼀个进程连接到另⼀个进程的⼀个数据流称为⼀个“管道”

2026-07-19 18:40:57 342 25

原创 库的原理:目标文件,ELF格式,程序加载

上一篇的文章中我们知道了库文件的制作以及怎么使用我们自己制作的库文件,但是上述的内容只是停留在使用的层面上,今天我们来了解一下底层的知识.

2026-07-18 20:24:40 350 22

原创 动静态库原理和制作

什么是库?来打一个比方:张三是非常擅长语文,李四非常擅长数学,你是一个学计算机的学生,现在老师需要你提交一个作业作业的要求就是需要利用你的语文和数学的知识储备来完成一个项目.如果这个项目你自己编写的话,你当然写的不会有张三在语文中写的好,在数学上你写的一定不会比李四写的好,但是你是一个学习计算机的学生,这难不倒你....你联系了张三和李四让他们分别把他们擅长的部分做好发给你,你做的就是他们擅长的东西组合起来,然后加上你自己的思想这样你产出的产品就是高质量的了.

2026-07-12 11:54:36 621 27

原创 深入理解文件系统(二)

在上一篇的学习中,我们简单的了解了文件是怎么在磁盘中存储的,我们简单的知道了,文件的存储逻辑结构就是一个三维数组.具体名称就是LBA地址.我们在之前只是了解一下硬件的知识,今天我们来了解一下文件系统中的软件的部分。

2026-07-09 20:33:39 924 30

原创 文件的存储(磁盘的物理和逻辑结构)

在上一篇的文章中我们了解了与文件相关的操作,简单的了解了进程时怎么打开文件的,但是文件是存储在那里的呢?我们在日常的认识中就知道了我们的文件是存储在我们的硬盘中的,但是真正的存储的方式是什么我们并不知道,现在我们来了解一下文件系统。

2026-06-19 18:00:14 503 33

原创 从C语言文件操作到系统调用(基础IO)

我们的进程的知识的讲解搞了一段落了,现在我们将会学习一下有关文件的一些操作,我们知道的是在我们的进程中我们会打开一些文件,至于打开文件的底层逻辑到底是什么?文件是怎么被找到的,文件是存储在哪里的?这些的知识在本章节中都会具体的讲解.今天我们讲解的内容是通过C语言的文件操作我们来认识一下在Linux下文件操作。

2026-06-17 20:20:18 446 33

原创 进程最终篇---进程控制(模拟实现xshell)

今天我们的进程章节引来了完结,在之前的学习中我们初步认识了进程的结构,明白了进程是怎么切换的,怎么创建出一个进程并且等待他的返回值,这些知识点.今天我们将会来学习进程控制的相关的知识.本文的主要的目标是学会怎么进行进程的切换.并且依靠这个知识点我们来模拟实现一下xshellOK.话不多说了.开始了我们今天学习的旅途了。

2026-06-09 18:06:58 391 42

原创 今日算法----一篇文章学会背包问题

蓝桥杯的国赛马上就要开始了,停更已久的算法专栏,为了在国赛的时候不情愿干瞪眼,今天我们来学习动态规划中的背包问题.在这里祝愿大家在国赛中取得理想的成绩上述的是经典的背包问题,还有不同的题型,还需要我们通过刷题来理解希望可以帮助到你!!多重背包。

2026-06-04 15:43:44 861 44

原创 进程篇: 进程概念的补充(了解环境变量和虚拟地址空间)

在前面我们知道了怎么创建进程,并且知道了怎么拿到进程退出的信息和拿到这个信息的重要性今天我们来结束进程的篇章,今天会补充一下进程的概念的知识(包括环境变量和虚拟地址空间)然后讲解进程替换的内容,模拟实现一下xshell。

2026-05-31 15:08:41 412 45

原创 一步搞定Xshell远程连接vscode的问题

在之前我们使用Linux的时候我们编辑文本的工具是vim,但是这个编辑器实在是用来难受,但是我们也不得不使用这个,现在我们可以通过远程用vscode连接我们的机器,在远端的vscode上编辑文本,编辑的东西也会在机器上显示。

2026-05-23 11:25:00 588 14

原创 进一步了解进程---第四章 进程管理

在前面的几个章节中我们初步的了解了什么是进程,进程的状态,操作系统管理进程的方法,并且我们详细的知道了进程的切换调度的原理,今天我们再来深入的了解一些进程的管理方面的知识这篇文章首先在进程创建部分,重点讲解了fork系统调用的使用,包括如何通过返回值区分父子进程,以及写时拷贝(COW)机制在资源管理中的高效应用。其次是进程终止,详细阐述了子进程结束的多种方式(exit_exitreturn),并强调了退出码(Exit Code)作为父进程获取子进程状态的关键信息。最后在进程等待部分,深入解析了。

2026-05-23 10:49:51 1068 48

原创 深入理解进程概念 第三章 进程调度切换

在上一章的进程的讲解中我们初步认识了进程状态,并且知道了进程的调度实际上依靠cpu上的调度队列的.但是我们并不知道这个调度队列的原理.今天我们就来了解一下cpu是怎么进行进程的调度的本文内容围绕 Linux 进程调度展开,先介绍进程优先级,区分了 PRI(进程优先级)与 NI(nice 值),说明两者共同决定进程调度权重,并补充竞争、独立、并行、并发等基础概念,帮助理解进程运行环境。

2026-05-19 13:01:16 801 42

原创 深入了解进程概念 第二章

在上一篇的进程的文章中我们初步了解了进程的概念,我们知道了怎么查看进程,操作系统管理进程的方法就是把进程用一个个结构体进程描述然后对这一个个结构体进行管理就行了,然后我们还知道了进程的名片(pid).了解了怎么创建出一个进程今天我们再来进一步了解进程的相关的知识本文从通用进程状态切入,涵盖就绪、阻塞、挂起三大基础状态,并点明内核链表支持进程同时挂入多队列的设计原理;接着聚焦 Linux 下的具体进程状态,包括运行、浅度睡眠(可中断阻塞)、深度睡眠(不可中断阻塞)、T/t 暂停、死亡与僵尸状态;

2026-05-17 19:15:51 707 21

原创 C++继承

我们的C++学习了类和对象,但是在当时我们限定词仅仅讲解了privat和public并没有讲解protect今天我们将会通过学习这个继承来了解这个知识现在我们就以这个继承的类作为代表来了解一下这个teacher叫做派生类然后冒号这个public叫做继承的方法(在这里是public继承)然后这个person就是基类现在我们的脑子中出现了新的代名词了什么是派生类,什么是基类,这个继承的方法有什么影响?派生类:简单的来说就是由一个现有的类,因为新定义的类和这个类有了许多的类似的特性。

2026-05-16 13:46:20 631 18

原创 初步了解进程的概念

在我们进入今天的学习的之前,我们先来总结一下我们之前学习的东西是什么?在之前的文章中我们学习了Linux的简单的指令并且我们了解了权限并且我们试着学习了在Linux下的开发工具.工欲善其事必先利其器现在我们就迈进进程这个大关.今天我们就来了解一下进程的概念.这篇文章先从冯诺依曼体系和操作系统的基础讲起,把地基打牢;再讲进程到底是什么,内核又是怎么用来描述它的;接着教大家用ps ajx/proc文件系统看进程,用getpid()getppid()拿 PID 和 PPID;

2026-05-14 16:28:20 535 31

原创 Linux调试代码(gbd使用指南)

在之前的学习中我们认识了大部分的开发的工具了,今天我们来学习一下最后一个开发工具她的的作用就是对我们编写的代码进行调试监视(gbd)GDB 是 C/C++ 程序调试的核心工具,需配合-g参数编译生成调试信息。基础流程包括:使用run启动程序,通过break设置断点、管理断点状态,用next/step实现逐语句 / 逐过程调试;变量监视可通过display自动显示或watch硬件观察点实现,需注意watch仅在变量当前作用域生效,跨函数时需重新设置;调试结束后用quit退出。

2026-05-11 11:29:38 642 30

原创 Linux下的Git的上传(版本控制器)

当然我们在Windows下知道怎么远程上传我们的代码到gitee但是在Linux下的代码我们怎么上传到远程呢?这就是我们今天的内容这篇文章讲解了怎么在linux下上传我们的代码!!之后会讲解怎么在Linux调试代码。

2026-05-10 16:39:54 464 5

原创 C++模板进阶

在之前的文章中我们初步了解了C++模板的使用知道了函数模板 类模板今天我们来进一步了解一下这个模板的使用本文围绕 C++ 模板核心内容展开,涵盖非类型模板参数、模板特化与模板分离编译三大板块。非类型模板参数允许模板接收编译期常量,拓展了模板的使用场景。模板特化分为函数模板特化与类模板特化,其中类模板特化包含全特化与偏特化,前者针对特定类型,后者可适配指针、引用等泛化形态或部分参数固定的场景,而函数模板特化在工程中多被重载替代。

2026-05-10 11:29:31 544 26

原创 基础的开发工具(2)---Linux

在之前的开发工具介绍的文章中我们简单的了解了怎么在Linux下下载软件也就是yum的使用和vim的使用和配置接下来我们进一步来了解Linux的开发工具这篇文章主要讲解 C/C++ 开发基础流程,核心内容如下:介绍gcc/g++编译器,拆解代码从预处理、编译、汇编到链接的完整过程,区分静态链接与动态链接,讲解动静态库概念;同时讲解make工具与Makefile自动化构建,包括目标执行规则、修改时间判断逻辑及$<$@等自动化变量的用法之后还会讲解开发工具的使用!!

2026-05-06 20:29:11 633 24

原创 list模拟实现

在之前的文章中,我们学习了C++库中的list接口的使用,今天我们来了解一下库中的list是怎么实现的,并且我们来模拟实现一下简单的list的接口本次内容围绕 C++ 手写链表展开,从节点类、迭代器类的基础实现,到链表类的封装(含构造 / 析构、容量接口),再到核心操作 insert、erase、clear 的实现逻辑,完整复刻了 STL 链表的核心框架。在之后我们会来了解怎么来封装堆,栈,队列.!!

2026-05-04 11:18:27 525 15

原创 list 接口拆解:我踩过的坑,帮你避开

在数据结构中我们学习了链表的相关的语法知识,并且我们用了C语言模拟实现了这个数据结构但是我们在C++中还是需要来学习一下在C++库中的链表是什么样子的,并且我们来模拟实现一下这个结构本章节聚焦std::list的核心修改接口,系统梳理了链表节点增删、替换与重组的各类操作。从基础的头尾插入删除push/pop,到迭代器区间操作,再到链表专属的splicemergesort等高级功能,完整覆盖了 STL list 容器的修改能力。之后我会模拟实现一下这个链表.!!

2026-04-29 20:16:46 413 14

原创 基础的开发工具(Linux)

在之前的文章中我们简单的了解了Linux的指令和有关权限的知识,有了基本的指令作为我们的基础我们就来认识一下Linux的开发工具今天我们先来了解其中的两个就是yum和vim以上就是今天的内容了,之后会继续讲解开发工具的使用!!

2026-04-28 23:18:54 1404 8

原创 Linux指令进阶 面试必看:Linux的权限

在Linux的上篇文章中我们了解到了怎么在我们的电脑上远程登录上Linux操作系统并且学习了一些基础的指令.今天我们来进一步的学习指令并且理解一下Linux的权限的相关知识我围绕指令与权限两大核心模块,梳理了日常高频操作要点。指令部分覆盖文件操作、文本查看、压缩传输、系统工具等常用命令,提炼了典型场景用法;权限部分聚焦chown命令与umask缺省权限机制,理清权限屏蔽逻辑与系统硬规则之后会讲解Linux下的开发的工具!!

2026-04-24 13:16:40 546 12

原创 剖析vector底层代码 模拟实现vector

在之前我们详细的介绍了C++库中的vector的使用,今天我们来自己实现一下这个vector的容器,并且提供几个经常使用的接口本次实现了一个简易版的 C++vector,以动态数组为底层结构,通过_begin_end三个核心指针管理内存与元素。实现了迭代器、构造 / 析构函数,以及clearsizecapacityoperator[]等基础接口。核心难点在于reserve的内存扩容、resize的元素初始化,以及inserterase。

2026-04-22 13:15:35 445 13

原创 Linux使用指南和基础指令(1)

Linux 是如今主流的操作系统,要聊它的历史,必须先从 Unix 说起 ——Linux 正是受 Unix 设计理念启发而来的类 Unix 系统。早年想要使用成熟的操作系统,大多只能选择闭源商用的 Unix,不仅收费高昂,还无法自由修改。于是,林纳斯・托瓦兹参考 Unix 的设计思想,从零独立编写了一套操作系统内核,并选择完全开源、免费共享,让所有人都能自由使用与改进。,既致敬了源头,也强调了它是独立全新的系统。

2026-04-20 13:01:49 1427 13

原创 STL库(vector)逐步分析vector( 包含常用的接口的使用讲解)

在之前的文章中我们了解了string的使用和模拟实现,他对应的是在C语言中的字符串数组,今天我们要学的是这个vector就是可以理解为可以存储各种类型的数组以上就是今天的所有的内容:之后会模拟实现一下这个vector的常用的接口和函数!!

2026-04-17 15:14:28 513 9

原创 深剖string内部结构 手撕string

在前面我们知道了在标准库中的string的各种接口和使用的方法,今天我们就来接触一下底层,来模拟实现一下这个string的类。

2026-04-16 15:21:46 505 8

原创 STL库: string类

为什么要学string库,在我们的C语言中我们可以用数组来存储字符串,那么我们为什么要学一个string类呢??那是因为我们在C语言中的用起来特别的麻烦但是在我们的string中我们会感到无与伦比的畅快.下面我们直接来看一下我们的string库中的给我们的接口和函数在讲解的之前我们先来认识一下 auto和范围for内容围绕 C++string类核心接口展开,先铺垫auto与范围for两大 C++11 语法糖,再系统梳理string的常用操作:涵盖构造、容量管理(sizeresizeclearempty。

2026-04-12 18:05:43 506 8

原创 C++内存管理 C++模板

本部分系统梳理了 C++ 内存管理与模板两大核心知识。内存管理模块对比了 C 与 C++ 的内存管理方式,解析了 new/delete 的底层实现原理,明确了其与 malloc/free 的核心区别,总结了 C++ 内存管理的特点,为安全高效的内存操作奠定基础。模板模块从基础认知切入,详解了函数模板的概念、格式、原理与实例化方式(隐式 / 显式),明确了函数模板与非模板函数的匹配规则,同时涵盖类模板相关内容,体现了模板的泛型编程思想,实现代码复用与类型安全.

2026-04-08 14:05:41 498 11

原创 类和对象----最终篇

在前面我们介绍了类和对象的基础的语法知识,我们初步了解了类的构造函数,析构函数,和函数的重载等等,今天我们来对类和对象收 个尾.本次内容围绕 C++ 类与对象核心知识点展开。再探构造函数,明晰其初始化与对象创建的作用;掌握类型转换规则,理解隐式与显式转换的差异与应用。static 成员为类所有,实现数据共享与独立访问,突破对象限制。友元打破封装,让外部函数或类可访问类私有成员,需谨慎使用。内部类可直接访问外部类私有成员,私有内部类能有效隐藏实现细节,强化封装。

2026-04-06 11:19:55 431 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除