自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大白的编程日记.

苦尽甘来 再讲来时路.

  • 博客(92)
  • 收藏
  • 关注

原创 【C++笔记】AVL树的深度剖析

哈喽,各位小伙伴大家好!上期我们讲了map和set的深度剖析。今天我们来讲一下AVL树的深度剖析。话不多说,我们进入正题!向大厂冲锋。

2024-12-10 16:36:00 2579 80

原创 【C++笔记】数据结构进阶之二叉搜索树(BSTree)

哈喽,各位小伙伴大家好!上期我们讲了C++三大特性之多态。今天我们来讲一下二叉搜索树(BSTree)。话不多说,我们进入正题!向大厂冲锋。

2024-11-24 21:22:39 2484 71

原创 【算法笔记】滑动窗口算法原理深度剖析

哈喽,各位小伙伴大家好!上期我们讲了双指针算法原理,今天我们继续讲解滑动窗口算法原理。话不多说,咱们进入正题!向大厂冲锋!滑动窗口就是根据题目信息,在暴力枚举的条件下利用单调性优化,用同向双指针快速筛选掉一些不必要的遍历情况。在O(N)的复杂度下完成所有情况的枚举从而解题的算法。

2024-10-05 15:48:00 2054 75

原创 【C语言】基于C语言实现的贪吃蛇游戏

哈喽,各位小伙伴大家好!今天给大家带来的是使用C语言实现的贪吃蛇小游戏。也是检验C语言是否学好的试金石。话不多说,咱们进入正题!向大厂冲锋!本次实现贪吃蛇会使用到的⼀些Win32 API知识,接下来我们就学习⼀下什么是Win32 API。

2024-06-08 17:36:20 2306 104

原创 【数据结构】初识数据结构之复杂度与链表

哈喽,各位小伙伴大家好!今天我们开启全新的篇章,数据结构。简单来说数据结构就是数据在内存中的管理。今天给大家带来的是数据结构中的复杂度和链表的知识。话不多说,咱们进入正题!向大厂冲锋!

2024-06-08 17:24:32 2435 125

原创 【Linux学习笔记】进程间通信之管道通信

本文介绍了Linux进程间通信中的管道通信机制,重点讲解了匿名管道的原理和使用方法。主要内容包括:进程间通信的目的(数据传输、资源共享等)和发展历程;管道的概念及其分类(匿名管道和命名管道);匿名管道的创建、读写规则和特点(半双工、原子性等);并通过代码示例展示了父子进程间通过管道通信的实现过程。最后还提出了基于管道的进程池框架,为后续更复杂的进程通信机制学习奠定了基础。管道作为Unix最古老的IPC方式,适用于具有亲缘关系的进程间通信。

2025-05-31 17:07:55 936 45

原创 【Linux学习笔记】深入理解动静态库本质及其制作

Linux动静态库学习笔记本文系统介绍了Linux中的动静态库概念、制作和使用方法。主要内容包括:库的概念:库是可供复用的二进制代码,分为静态库(.a/.lib)和动态库(.so/.dll)。静态库:编译时链接到可执行文件制作方法:使用ar工具打包.o文件使用方法:通过gcc的-L、-l选项指定库路径和名称动态库:运行时动态加载,节省资源制作方法:使用gcc -shared和-fPIC参数使用方法:除编译选项外,还需注意库路径设置提供了详细的Makefile示例

2025-05-28 16:43:56 1072 40

原创 【Linux学习笔记】深入理解ELF和动静态库加载原理

本文深入解析了ELF文件的结构和加载原理。ELF文件可分为四种类型:可重定位文件、可执行文件、共享目标文件和内核转储文件。ELF由四部分组成:ELF头、程序头表、节头表和节。重点介绍了ELF从编译链接到加载执行的完整过程,包括.section合并为Segment的原则,以及如何通过程序头表确定加载方式。文章还提供了查看ELF文件结构的实用命令(readelf -S/-l),帮助开发者理解可执行程序的内存布局。通过对ELF文件加载机制的剖析,读者可以更深入地掌握Linux程序运行的底层原理。

2025-05-25 16:55:56 1022 46

原创 【Linux学习笔记】ext2文件系统的深度剖析

文深入剖析了ext2文件系统,从宏观到微观,详细介绍了其结构与原理。ext2文件系统将分区划分为多个块组(Block Group),每个块组包含超级块(Super Block)、块组描述符表(GDT)、块位图(Block Bitmap)、inode位图(Inode Bitmap)、inode表(Inode Table)和数据块(Data Block)。超级块存储文件系统的关键信息,GDT描述块组属性,块位图和inode位图分别记录数据块和inode的使用情况,inode表存放文件属性,数据块存储文件内容。文

2025-05-22 17:27:31 1028 46

原创 【算法笔记】状态机DP之买卖股票问题通用解法

本文介绍了买卖股票问题的通用解法,重点讲解了状态机动态规划(DP)的应用。首先,通过“买卖股票的最佳时机”问题,展示了如何通过遍历价格数组,记录最低价格并计算最大利润。接着,针对“买卖股票的最佳时机2”问题,提供了记忆化搜索和动态规划两种解法,分别通过递归和迭代的方式计算最大利润。最后,针对“买卖股票的最佳时机4”问题,进一步扩展了状态机DP的应用,处理了最多K次交易的情况,并提供了记忆化搜索和动态规划的代码实现。文章通过逐步深入的方式,帮助读者理解并掌握买卖股票问题的通用解法。

2025-05-19 17:11:57 883 50

原创 【Linux学习笔记】从物理硬件到逻辑结构揭开文件系的面纱

本文深入探讨了Linux文件系统的底层逻辑,从物理硬件到逻辑结构的转换过程。首先,文章介绍了磁盘的物理结构,包括扇区、磁头、磁道和柱面等概念,并详细解释了CHS(柱面、磁头、扇区)寻址方式。接着,文章阐述了磁盘的逻辑结构,将磁盘视为一个线性的一维数组,引入了LBA(逻辑块地址)的概念,并解释了CHS与LBA之间的转换方法。最后,文章引入了“块”和“分区”的概念,解释了操作系统如何通过块和分区来管理磁盘数据。通过本文,读者可以更好地理解文件系统在Linux中的底层工作原理。

2025-05-16 16:19:41 1198 29

原创 【Linux学习笔记】理解一切皆文件实现原理和文件缓冲区

本文主要探讨了Linux系统中“一切皆文件”的实现原理以及文件缓冲区的作用。在Linux中,不仅普通文件被视为文件,硬件设备、进程、管道等也被抽象为文件,开发者可以通过统一的API(如read和write)访问这些资源。这种设计简化了开发流程,提高了系统的可扩展性。文章还详细介绍了struct file和file_operations结构体,这些结构体通过函数指针将系统调用与驱动程序关联起来,实现了对各类资源的统一管理。此外,文章还解释了缓冲区的概念及其重要性,缓冲区通过减少系统调用次数,提高了文件读写的效

2025-05-13 17:35:38 1472 53

原创 【Linux学习笔记】系统文件IO之重定向原理分析

本文介绍了Linux系统中文件I/O操作的基本原理,特别是重定向的实现机制。首先,文章通过C语言代码示例展示了如何通过系统调用(如open、read、write等)进行文件的读写操作,并详细解释了open函数的参数和返回值。接着,文章深入探讨了文件描述符(fd)的概念,指出文件描述符是进程与文件关联的关键,默认情况下,0、1、2分别代表标准输入、标准输出和标准错误。最后,文章通过代码示例演示了文件描述符的分配规则和重定向的实现,指出文件描述符的分配遵循最小可用原则,关闭标准输出后,新打开的文件会占用该描述符

2025-05-10 17:02:04 1044 41

原创 【Linux学习笔记】基础IO之理解文件

哈喽,各位小伙伴大家好!上期我们讲了进程替换 今天我们讲的是基础IO之理解文件。话不多说,我们进入正题!向大厂冲锋!

2025-05-08 16:33:16 1228 40

原创 【Linux学习笔记】进程替换和自定义shell

哈喽,各位小伙伴大家好!上期我们讲了进程地址空间 今天我们讲的是进程替换和自定义shell。话不多说,我们进入正题!向大厂冲锋!在继续学习新知识前,我们来思考函数和进程之间的相似性 exec/exit就像call/return一个C程序有很多函数组成。一个函数可以调用另外一个函数,同时传递给它一些参数。被调用的函数执行一定的操作,然后返回一个值。每个函数都有他的局部变量,不同的函数通过cal/return系统进行通信。

2025-04-29 16:36:55 1062 42

原创 【Linux学习笔记】进程的fork创建 exit终止 wait等待

哈喽,各位小伙伴大家好!上期我们讲了环境变量今天我们讲的是【Linux学习笔记】进程的fork创建 exit终止 wait等待。话不多说,我们进入正题!向大厂冲锋!

2025-04-25 18:19:38 1449 49

原创 【Linux学习笔记】进程地址空间的深度剖析及其原理

哈喽,各位小伙伴大家好!上期我们讲了环境变量今天我们讲的是进程地址空间的深度剖析及其原理。话不多说,我们进入正题!向大厂冲锋!

2025-04-23 18:05:59 1082 50

原创 【Linux学习笔记】Linux的环境变量和命令行参数

哈喽,各位小伙伴大家好!上期我们讲了进程切换和调度今天我们讲的是环境变量和命令行参数。话不多说,我们进入正题!向大厂冲锋!

2025-04-20 17:30:18 1627 42

原创 【Linux学习笔记】进程调度与切换之O(1)调度算法

哈喽,各位小伙伴大家好!上期我们讲了进程状态 今天我们讲的是进程调度与切换之O(1)调度算法。话不多说,我们进入正题!向大厂冲锋!在系统当中查找一个最合适调度的进程的时间复杂度是一个常数,不随着进程增多而导致时间成本增加,我们称之为进程调度O(1)算法!

2025-04-18 17:51:45 1304 34

原创 进程状态(运行 阻塞 僵尸)及其场景分析

哈喽,各位小伙伴大家好!上期我们讲了进程PCB 今天我们讲的是进程状态(运行 阻塞 僵尸)及其场景分析。话不多说,我们进入正题!向大厂冲锋!

2025-04-07 17:23:56 1204 38

原创 【Linux学习笔记】初识进程概念和进程PCB

哈喽,各位小伙伴大家好!上期我们讲了gdb和cgdb 今天我们讲的是初识冯诺依曼体系和进程PCB。话不多说,我们进入正题!向大厂冲锋!

2025-04-05 17:33:50 1266 34

原创 【Linux学习笔记】开发工具git和gbd和cgbd的介绍和使用

哈喽,各位小伙伴大家好!上期我们讲了Makefile,今天我们讲的是git和gbd的介绍和使用。话不多说,我们进入正题!向大厂冲锋!

2025-04-03 16:51:09 1693 38

原创 【C++笔记】C++常见二叉树OJ和拓扑排序

哈喽,各位小伙伴大家好!上期我们讲了C++的类型转换。今天我们来讲一下C++常见二叉树OJ和拓扑排序。话不多说,我们进入正题!向大厂冲锋。

2025-04-01 17:09:08 1002 36

原创 【C++笔记】C++和C语言的类型转换对比分析

哈喽,各位小伙伴大家好!上期我们讲了 C++的IO库。今天我们来讲一下 C++类型转换。话不多说,我们进入正题!向大厂冲锋!

2025-03-28 17:37:47 965 32

原创 【C++笔记】C++IO流的深度剖析

哈喽,各位小伙伴大家好!上期我们讲了模版的特化及其编译分离。今天我们来讲一下C++三大特性之继承。话不多说,我们进入正题!向大厂冲锋。

2025-03-26 17:56:31 1212 34

原创 【Linux学习笔记】gcc编辑器和动静态库的深度剖析

哈喽,各位小伙伴大家好!上期我们讲了Linux用户和文件权限的深度剖析 今天我们讲的是gcc编辑器和动静态库的深度剖析。话不多说,我们进入正题!向大厂冲锋!

2025-03-24 17:51:36 1022 38

原创 【Linux学习笔记】apt/yum源以及vim的深度剖析

哈喽,各位小伙伴大家好!上期我们讲了Linux基本指令及其分析(一) 今天我们讲的是Linux基本指令及其分析(二)。话不多说,我们进入正题!向大厂冲锋!三种模式正常模式插入模式底行模式我们一共有12种总模式,大家下来可以研究一下vim操作打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。

2025-03-22 16:47:48 1453 45

原创 【Git学习笔记】深度理解Git的分布式版本控制系统及其管理

哈喽,各位小伙伴大家好!上期我们讲了git分支管理!。今天我们来讲一下深度理解Git的分布式版本控制系统。话不多说,我们进入正题!向大厂冲锋。

2025-03-20 17:29:56 1572 44

原创 【Git学习笔记】Git分支管理策略及其结构原理分析

哈喽,各位小伙伴大家好!今天开始我们就进入新的篇章——Git学习!。今天我们来讲一下Git初始及其结构原理分析。话不多说,我们进入正题!向大厂冲锋。

2025-03-18 17:08:04 1323 44

原创 【Git学习笔记】Git结构原理及其分支管理模型分析

哈喽,各位小伙伴大家好!今天开始我们就进入新的篇章——Git学习!。今天我们来讲一下Git初始及其结构原理分析。话不多说,我们进入正题!向大厂冲锋。

2025-03-15 16:32:28 2624 56

原创 【Linux学习笔记】Linux用户和文件权限的深度剖析

【Linux学习笔记】Linux用户和文件权限的深度剖析前言一. Linux权限管理1.1 文件访问者的分类(人)1.2 文件类型和访问权限(事物属性)二. 文件权限值的表示方法2.1 file 指令2.2 关于权限的总结2.3 粘滞位后言哈喽,各位小伙伴大家好!上期我们讲了Linux基本指令及其分析(一) 今天我们讲的是Linux基本指令及其分析(二)。话不多说,我们进入正题!向大厂冲锋!目录的可执行权限是表示你可否在目录下执行命令。

2025-03-13 16:08:20 1122 33

原创 【Git学习笔记】Git初识及其结构原理分析(一)

哈喽,各位小伙伴大家好!今天开始我们就进入新的篇章——Git学习!。今天我们来讲一下Git初始及其结构原理分析。话不多说,我们进入正题!向大厂冲锋。

2025-03-11 17:32:01 1362 48

原创 【Linux学习笔记】Linux基本指令分析和权限的概念

哈喽,各位小伙伴大家好!上期我们讲了Linux基本指令及其分析(二) 今天我们讲的是Linux基本指令分析和权限的概念。话不多说,我们进入正题!向大厂冲锋!

2025-03-09 16:54:29 1478 44

原创 Linux基本指令及其分析(二)

哈喽,各位小伙伴大家好!上期我们讲了Linux基本指令及其分析(一) 今天我们讲的是Linux基本指令及其分析(二)。话不多说,我们进入正题!向大厂冲锋!

2025-03-06 16:40:15 1078 51

原创 【Linux学习笔记】Linux基本指令及其发展史分析

哈喽,各位小伙伴大家好!C++篇章的知识我们已全部讲解完毕。今天开始我们开启全新的篇章——Linux操作系统今天我们讲的是Linux基本指令及其分析。话不多说,我们进入正题!向大厂冲锋。

2025-03-03 17:27:23 979 50

原创 【C++笔记】C++11智能指针的使用及其原理

哈喽,各位小伙伴大家好!上期我们讲了C++的异常机制。今天我们来讲一下C++智能指针的使用及其原理。话不多说,我们进入正题!向大厂冲锋什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存,一般是忘记释放或者发生异常释放程序未能执行导致的。内存泄漏并不是指内存在物理上的消失,而是是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:普通程序运行⼀会就结束了出现内存泄漏问题也不大,进程正常结束,页表的映射关系解除,物理内存也可以释放。

2025-02-26 17:15:02 1628 50

原创 【C++笔记】C++的异常机制

哈喽,各位小伙伴大家好!上期我们讲了C++11。今天我们来讲一下C++的异常机制。话不多说,我们进入正题!向大厂冲锋。

2025-02-25 14:57:31 995 35

原创 【C++笔记】C+11深度剖析(三)

哈喽,各位小伙伴大家好!上期我们讲了C+11深度剖析(二)。今天我们来讲一下C+11深度剖析(三)。话不多说,我们进入正题!向大厂冲锋。

2025-02-21 18:54:40 1643 48

原创 【C++笔记】C++11的深度剖析(二)

哈喽,各位小伙伴大家好!上期我们讲了C++11的部分内容。今天我们继续深入探讨C++11。话不多说,我们进入正题!向大厂冲锋。

2025-02-18 16:56:22 1257 41

原创 【C++笔记】C++11的深度剖析(一)

哈喽,各位小伙伴大家好!上期我们讲了哈希封装。今天我们来讲一下C++的深度剖析。话不多说,我们进入正题!向大厂冲锋。

2025-02-16 16:22:03 1464 49

空空如也

空空如也

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

TA关注的人

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