自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

是阿建吖!

欢迎来到阿建的主页,希望我的文章对你有帮助!

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

原创 【Linux | 网络】高级IO

本篇文章先讲述 IO 概念及五种 IO 模型的定义与理解。接着讲解非阻塞 IO,包括 fcntl 函数和 SetNoBlock 实现。重点介绍多路转接 IO 的 select、poll、epoll:详述三者函数接口与优缺点,深入解析 epoll 的接口、原理、水平 / 边缘触发工作方式,及其相较 select 的优点和适用场景。

2025-08-17 21:58:01 2853 101

原创 【Linux | 网络】数据链路层

本篇文章讲解了以太网和 ARP 协议。先讲解以太网的基本概念、帧格式及 MAC 地址的分类与和 IP 地址的区别,阐述局域网通信原理与数据碰撞问题及交换机划分碰撞域的解决方式。再讲解 ARP 协议的作用、数据报格式、工作流程与特性,最后提及通过热点实现中间人攻击的相关内容。

2025-08-10 12:09:10 3851 75

原创 【Linux | 网络】网络层(IP协议、NAT技术和ICMP协议)

本篇文章讲解了 IP 协议、NAT 技术及 ICMP 协议相关知识。IP 协议通过协议格式规范数据传输,经传统分类编址与 CIDR 实现网段划分,依托路由器和路由表完成路由,并因 MTU 限制存在分片机制,但分片存在效率问题。NAT 技术通过映射表转换地址缓解公网 IP 短缺,却有通信局限,与代理服务器在功能和场景上差异显著,内网穿透可突破其限制。ICMP 协议承担网络诊断功能,Ping 命令基于此实现连通性检测,输出关键指标助力网络问题排查。

2025-08-04 08:49:40 3694 63

原创 【Linux | 网络】传输层(UDP和TCP)

本篇文章讲述了网络协议中的端口号、UDP 和 TCP 。先介绍端口号的范围、知名端口、相关命令及与进程的关系;再讲解 UDP 协议段格式、报文管理、封装过程、特点、缓冲区、使用注意事项及基于其的应用层协议;接着深入讲解 TCP 的协议段格式、流量控制、确认应答等机制,包括三次握手、四次挥手、滑动窗口、拥塞控制等核心内容,还涉及粘包、异常情况等;最后对比 UDP 与 TCP 特点,探讨用 UDP 实现可靠传输。

2025-07-27 23:47:07 2685 42

原创 【Linux | 网络】应用层(HTTPS)

本篇文章围绕 HTTPS 展开,先介绍其概念及加密、解密等基础概念,包括对称与非对称加密、数据摘要。再阐述 HTTPS 理解过程,从不同加密方式尝试,到中间人攻击及证书(含 CA 认证、签名)的解决作用,最后提及 CSR 生成。

2025-07-23 23:09:45 2028 36

原创 【Linux | 网络】多路转接IO之epoll

本篇文章详细讲解了epoll,先介绍 epoll_create、epoll_ctl、epoll_wait 等核心接口;阐述其原理及与接口的关联;解析水平触发和边缘触发两种工作方式,对比二者差异,说明 ET 模式与非阻塞文件描述符的关系;结合 select 的缺点,阐述 epoll 的优点及适用场景。最后通过 Log.hpp、Socket.hpp 等一系列文件,完整实现 epoll 服务器,涵盖日志、锁管理、套接字封装等模块。

2025-08-31 22:53:51 2021 67

原创 【动态规划】子序列问题

本篇文章列举了八个经典的LeetCode算法题目,包括最长递增子序列、摆动序列、最长递增子序列的个数、最长数对链、最长定差子序列、最长的斐波那契子序列的长度、最长等差数列和等差数列划分 II - 子序列。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码。

2025-08-31 22:53:37 1395 32

原创 【动态规划】回文串问题

本篇文章列举了六个经典的LeetCode算法题目,包括回文子串、最长回文子串、分割回文串 IV、分割回文串 II、最长回文子序列和让字符串成为回文串的最少插入次数。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码。

2025-08-31 22:53:22 858 22

原创 【动态规划】子数组、子串问题

本篇文章列举了八个经典的LeetCode算法题目,包括最大子数组和、环形子数组的最大和、乘积最大子数组、乘积为正数的最长子数组长度、等差数列划分、最长湍流子数组、单词拆分和环绕字符串中唯一的子字符串。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码。

2025-08-28 22:44:30 3112 48

原创 【动态规划】简单多状态 dp 问题

本篇文章列举了八个经典的LeetCode算法题目,包括按摩师、打家劫舍 II、删除并获得点数、粉刷房子、买卖股票的最佳时机含冷冻期、买卖股票的最佳时机含手续费、买卖股票的最佳时机 III 和买卖股票的最佳时机 IV 。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码。

2025-08-28 22:43:55 1025 31

原创 【Linux | 网络】多路转接IO之poll

本篇文章先介绍 poll 函数本身,再分析其优缺点,随后聚焦读事件,通过 Log、Lockguard、Socket 等工具类,封装 PollServer 服务端,含套接字管理与事件监听,最终以 Main.cpp 启动,完成构建 poll 服务器。

2025-08-25 22:07:53 2073 52

原创 【动态规划】卡特兰数

本篇文章列举了一个经典的LeetCode算法题目,不同的二叉搜索树。我会在这道题中提到解题思路,并提供解决本题的C++代码。

2025-08-25 22:06:43 1007 26

原创 【Linux | 网络】多路转接IO之select

本篇文章先介绍 select 函数,分析其支持多连接的优点与文件描述符限制、效率随连接数下降等缺点。随后聚焦读事件,通过 Log、Lockguard、Socket 等工具类,封装 SelectServer 服务端,含套接字管理与事件监听,最终以 Main.cpp 启动,呈现 select 网络编程应用。

2025-08-21 23:50:28 1724 54

原创 【动态规划】路径问题

本篇文章列举了六个经典的LeetCode算法题目,包括不同路径、不同路径 II、珠宝的最高价值、下降路径最小和、最小路径和和地下城游戏。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-21 23:50:20 1879 34

原创 【动态规划】斐波那契数列模型

本篇文章列举了四个经典的LeetCode算法题目,包括第 N 个泰波那契数、三步问题、使用最小花费爬楼梯和解码方法。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-17 21:57:44 1662 33

原创 【递归、搜索与回溯算法】记忆化搜索

本篇文章列举了五个经典的LeetCode算法题目,包括斐波那契数、不同路径、最长递增子序列、猜数字大小 II和矩阵中的最长递增路径。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-17 21:57:23 1297 23

原创 【Redis】分布式系统的演化过程

本篇文章围绕系统架构演进展开,先介绍基本概念与评判标准,随后逐步阐述架构发展路径。从单机架构起步,依次引入分布式、分离应用与数据库服务。通过增加应用服务器实现负载均衡,采用读写分离优化数据库性能,引入缓存提升响应速度。接着讲解数据库分库分表策略,最终过渡到微服务架构。

2025-08-15 09:34:52 1443 54

原创 【递归、搜索与回溯算法】DFS解决FloodFill算法

本篇文章列举了七个经典的LeetCode算法题目,包括找出图像渲染、岛屿数量、岛屿的最大面积、被围绕的区域、太平洋大西洋水流问题、扫雷游戏和衣橱整理。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-15 09:34:33 1351 25

原创 【递归、搜索与回溯算法】综合练习

本篇文章列举了十五个经典的LeetCode算法题目,包括找出所有子集的异或总和再求和、全排列 II、电话号码的字母组合、括号生成、组合、目标和、字母大小写全排列、优美的排列、N 皇后、有效的数独、解数独、单词搜索、黄金矿工和不同路径 III。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-13 11:50:00 967 41

原创 【递归、搜索与回溯算法】穷举、暴搜、深搜、回溯、剪枝

本篇文章列举了两个经典的LeetCode算法题目,包括全排列和子集。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-13 11:49:45 1143 24

原创 【递归、搜索与回溯算法】深度优先搜索

本篇文章列举了六个经典的LeetCode算法题目,包括计算布尔二叉树的值、求根节点到叶节点数字之和、二叉树剪枝、验证二叉搜索树、二叉搜索树中第 K 小的元素和二叉树的所有路径。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-10 12:04:12 779 25

原创 【递归、搜索与回溯算法】递归算法

本篇文章列举了五个经典的LeetCode算法题目,包括汉诺塔问题、合并两个有序链表、反转链表、两两交换链表中的节点和Pow(x, n)。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-10 12:02:30 1145 18

原创 【优选算法】BFS解决拓扑排序

本篇文章列举了三个经典的LeetCode算法题目,包括课程表、课程表 II和火星词典。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-08 14:39:37 1053 41

原创 【优选算法】多源BFS

本篇文章列举了四个经典的LeetCode算法题目,包括01 矩阵、飞地的数量、地图中的最高点和地图分析。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-08 14:38:48 1198 23

原创 【优选算法】分治--归并排序

本篇文章列举了四个经典的LeetCode算法题目,包括排序数组、交易逆序对的总数、计算右侧小于当前元素的个数和翻转对。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-08-04 08:49:30 1339 31

原创 【优选算法】BFS解决最短路问题(单源)

本篇文章列举了四个经典的LeetCode算法题目,包括迷宫中离入口最近的出口、最小基因变化、单词接龙和为高尔夫比赛砍树。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-07-27 23:46:51 1158 30

原创 【优选算法】BFS解决FloodFill算法

本篇文章列举了四个经典的LeetCode算法题目,包括图像渲染、岛屿数量、岛屿的最大面积和被围绕的区域。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码。

2025-07-27 23:46:41 1288 23

原创 【Redis】初识Redis(定义、特征、使用场景)

本篇文章介绍 Redis 的基本情况,说明其在内存中存储数据的特点,以及它可作为数据库、缓存、消息中间件的多重角色。还讲解了Redis特性,包括内存数据结构、可编程性、可扩展性、持久化、集群、高可用和速度快等方面。​

2025-07-25 21:02:54 1559 32

原创 【优选算法】链表

本篇文章列举了五个经典的LeetCode算法题目,包括两数相加、两两交换链表中的节点、重排链表、合并 K 个升序链表和K 个一组翻转链表。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对链表的理解。

2025-07-25 21:02:48 871 17

原创 【Redis】在Ubentu环境下安装Redis

本篇文章介绍在 Ubuntu 环境下安装 Redis 的步骤:登录 root 账号,搜索 Redis 软件包并安装,修改配置文件,设置密码,重启服务器,最后用 Redis 自带客户端连接。

2025-07-23 23:05:10 1005 19

原创 【Linux | 网络】应用层(HTTP)

本篇文章围绕 HTTP 相关知识及服务器实现展开。先介绍 URL、urlencode 和 urldecode,再结合 Fiddler 抓包详解 HTTP 协议格式,包括请求、响应及共有的字段等,还讲解了 Cookie 和 Session。最后说明简单 HTTP 服务器的实现,含套接字等封装及相关页面。

2025-07-13 23:32:49 4487 64

原创 【Linux | 网络】应用层

本篇文章围绕网络编程展开,先回顾协议概念,接着介绍序列化与反序列化。核心部分为网络计算器的实现,最后讲解 DNS 域名解析系统,包括背景、域名结构及解析过程。

2025-07-13 23:28:38 1366 24

原创 【Linux】守护进程

本篇文章围绕守护进程展开,先介绍了一些预备知识,再阐述守护进程概念、setsid 函数及 daemon 函数,最后讲解模拟实现 daemon 函数的相关内容。

2025-07-13 23:25:32 984 17

原创 【Linux | 网络】socket编程 - 使用TCP实现服务端向客户端提供简单的服务

本篇文章围绕 TCP 编程展开,介绍一个应用场景下的编程实践。TcpServerEcho 实现服务端向客户端提供字符串转大写、翻译等简单的服务。

2025-07-09 21:45:33 1030 41

原创 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务

本篇文章围绕 UDP 编程展开,介绍三个不同 UDP 应用场景下的编程实践。UdpServerSever 实现客户端发信息、服务端直返;UdpServerExecute 支持客户端发指令、服务端执行后返回结果;UdpServerChat 实现简单聊天室。

2025-07-09 21:45:23 1215 22

原创 【Linux | 网络】网络编程套接字

本篇文章先讲解 IP 地址、端口号、网络套接字等基础概念,讲解端口号与进程 ID在网络中的作用,介绍 TCP、UDP 协议及网络字节序。再详述 socket 编程接口,包括 socket、bind 等常见 API,主机与网络字节序转换函数,IP 地址形式转换函数,数据收发函数及 sockaddr 结构。

2025-07-07 13:36:38 2272 44

原创 【Linux | 网络】网络基础

本篇文章先讲解了网络发展与协议的基础认知,网络与系统的关系,网络通信问题及层状结构解决方案,包括 OSI 七层、TCP/IP 五(四)层模型。然后讲解网络传输流程,涉及协议、局域网通信、传输流程图及数据包封装分用。最后讲解网络地址管理,对比 IP 与 MAC 地址。

2025-07-07 13:15:53 2039 42

原创 【MySQL】事务

本篇文章全面解析了数据库事务的概念、作用及其核心操作。事务作为数据库管理的基本单位,确保了数据操作的一致性、完整性和可靠性。文章详细探讨了事务的定义、版本支持、提交方式以及常见操作,并通过一系列实验演示了事务的回滚机制及在不同情况下的数据表现。同时,深入剖析了事务隔离级别的概念、分类及作用,帮助理解不同隔离级别对数据库一致性和并发性能的影响。

2025-03-27 01:04:09 5454 130

原创 【MySQL】索引

本篇文章详细讲解了MySQL索引的作用及其与磁盘存储的交互机制。首先,阐述了索引在数据库中的重要性,能够显著提高数据检索效率。接着,深入探讨了MySQL与磁盘存储的关系,以及MySQL与磁盘交互的基本单位——page。随后,通过详细解析索引的理解过程,包括单个page与多个page的理解、页目录的引入、B+树的选择等,让读者深入理解索引的底层原理。此外,文章还介绍了索引的创建、查询、删除操作,并给出了索引创建的实用原则。

2025-03-23 23:56:25 2564 86

原创 【MySQL】用户管理

本篇文章详细介绍了用户管理和数据库权限的相关内容。在用户管理方面,涵盖了用户信息的查看、新用户的创建、用户的删除以及用户密码的修改,其中密码修改又包括用户自行修改密码和root用户为其他用户修改密码两种情况。在数据库权限方面,本文讲解了如何给用户授权以访问或操作特定数据库资源,同时也阐述了如何回收用户的权限,以确保数据库的安全性和数据的完整性。

2025-03-23 23:55:39 1082 38

空空如也

空空如也

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

TA关注的人

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