- 博客(101)
- 收藏
- 关注
原创 【Linux | 网络】应用层(HTTP)
本篇文章围绕 HTTP 相关知识及服务器实现展开。先介绍 URL、urlencode 和 urldecode,再结合 Fiddler 抓包详解 HTTP 协议格式,包括请求、响应及共有的字段等,还讲解了 Cookie 和 Session。最后说明简单 HTTP 服务器的实现,含套接字等封装及相关页面。
2025-07-13 23:32:49
1390
35
原创 【Linux | 网络】应用层
本篇文章围绕网络编程展开,先回顾协议概念,接着介绍序列化与反序列化。核心部分为网络计算器的实现,最后讲解 DNS 域名解析系统,包括背景、域名结构及解析过程。
2025-07-13 23:28:38
803
12
原创 【Linux】守护进程
本篇文章围绕守护进程展开,先介绍了一些预备知识,再阐述守护进程概念、setsid 函数及 daemon 函数,最后讲解模拟实现 daemon 函数的相关内容。
2025-07-13 23:25:32
545
9
原创 【Linux | 网络】socket编程 - 使用TCP实现服务端向客户端提供简单的服务
本篇文章围绕 TCP 编程展开,介绍一个应用场景下的编程实践。TcpServerEcho 实现服务端向客户端提供字符串转大写、翻译等简单的服务。
2025-07-09 21:45:33
513
40
原创 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
本篇文章围绕 UDP 编程展开,介绍三个不同 UDP 应用场景下的编程实践。UdpServerSever 实现客户端发信息、服务端直返;UdpServerExecute 支持客户端发指令、服务端执行后返回结果;UdpServerChat 实现简单聊天室。
2025-07-09 21:45:23
967
18
原创 【Linux | 网络】网络编程套接字
本篇文章先讲解 IP 地址、端口号、网络套接字等基础概念,讲解端口号与进程 ID在网络中的作用,介绍 TCP、UDP 协议及网络字节序。再详述 socket 编程接口,包括 socket、bind 等常见 API,主机与网络字节序转换函数,IP 地址形式转换函数,数据收发函数及 sockaddr 结构。
2025-07-07 13:36:38
1302
38
原创 【Linux | 网络】网络基础
本篇文章先讲解了网络发展与协议的基础认知,网络与系统的关系,网络通信问题及层状结构解决方案,包括 OSI 七层、TCP/IP 五(四)层模型。然后讲解网络传输流程,涉及协议、局域网通信、传输流程图及数据包封装分用。最后讲解网络地址管理,对比 IP 与 MAC 地址。
2025-07-07 13:15:53
1104
40
原创 【MySQL】事务
本篇文章全面解析了数据库事务的概念、作用及其核心操作。事务作为数据库管理的基本单位,确保了数据操作的一致性、完整性和可靠性。文章详细探讨了事务的定义、版本支持、提交方式以及常见操作,并通过一系列实验演示了事务的回滚机制及在不同情况下的数据表现。同时,深入剖析了事务隔离级别的概念、分类及作用,帮助理解不同隔离级别对数据库一致性和并发性能的影响。
2025-03-27 01:04:09
4614
127
原创 【MySQL】索引
本篇文章详细讲解了MySQL索引的作用及其与磁盘存储的交互机制。首先,阐述了索引在数据库中的重要性,能够显著提高数据检索效率。接着,深入探讨了MySQL与磁盘存储的关系,以及MySQL与磁盘交互的基本单位——page。随后,通过详细解析索引的理解过程,包括单个page与多个page的理解、页目录的引入、B+树的选择等,让读者深入理解索引的底层原理。此外,文章还介绍了索引的创建、查询、删除操作,并给出了索引创建的实用原则。
2025-03-23 23:56:25
2227
85
原创 【MySQL】用户管理
本篇文章详细介绍了用户管理和数据库权限的相关内容。在用户管理方面,涵盖了用户信息的查看、新用户的创建、用户的删除以及用户密码的修改,其中密码修改又包括用户自行修改密码和root用户为其他用户修改密码两种情况。在数据库权限方面,本文讲解了如何给用户授权以访问或操作特定数据库资源,同时也阐述了如何回收用户的权限,以确保数据库的安全性和数据的完整性。
2025-03-23 23:55:39
937
38
原创 【MySQL】视图
本篇文章讲述了MySQL中的视图相关操作。首先,阐述了视图定义的重要性及其作用。接着,详细讲解了视图的基本使用方法,包括如何创建视图、修改视图对基表数据的影响、修改基表对视图的影响,以及删除视图的步骤。最后,还提到了视图在使用过程中的一些规则和限制。
2025-03-23 23:47:36
444
26
原创 【MySQL】内外连接
本篇文章讲述了MySQL查询中的内连接和外连接。内连接用于匹配两个表中的记录。外连接则分为左外连接和右外连接,分别用于确保在联合查询时,即使无匹配记录也能显示一方或双方的所有信息。
2025-03-23 23:47:16
739
31
原创 【MySQL】复合查询
本篇文章详细讲述了数据库的复合查询,首先复习了基本查询,然后讲解了多表查询、自连接和子查询。从基本查询开始,介绍了如何根据特定条件筛选数据,如工资、岗位和姓名等。随后,文章深入探讨了多表查询和自连接,展示了如何联合多个表的数据以获取更全面的信息。在子查询部分,详细讲解了单行子查询、多行子查询和多列子查询的使用,以及如何在from子句中使用子查询。最后,文章还介绍了合并查询的方法,用于组合多个查询结果。
2025-03-20 22:21:01
1745
47
原创 【MySQL】内置函数
本篇文章详细讲述了数据库操作中常用的几类函数,包括日期时间函数、字符串函数、数学函数以及其他函数。在日期时间函数部分,介绍了其基本使用方法和案例实操。字符串函数部分详细讲解了多个案例实践,如获取字符集、格式化显示考试结果、计算姓名占用的字节数、替换字符串中的特定字符、截取字符串以及转换首字母大小写等。数学函数部分简要介绍了其简单使用方法。最后,还提到了其他函数的简单使用。
2025-03-20 22:01:54
599
32
原创 【MySQL】基本查询(表的增删查改+聚合函数)
本篇文章详细讲述了SQL数据库操作的基础,包括创建(Create)、检索(Retrieve)、更新(Update)和删除(Delete)数据的各种操作,以及插入查询结果、聚合函数和GROUP BY子句的使用。文章详细列出了具体的SQL语法和案例实操,如单行多行数据插入、指定列查询、条件筛选、结果排序、分页、更新指定数据、删除记录、聚合统计等。此外,本篇文章还提供了OJ练习链接,涵盖了批量插入、薪水情况查询、最晚入职员工信息、入职时间排名倒数第三的员工信息等实际问题。
2025-03-19 20:01:00
2381
58
原创 【MySQL】表的约束
本篇文章详细讲述了关于数据库表设计关键属性的。文章依次探讨了空属性(允许字段为空或不允许),默认值(为新记录提供预设值),列描述(增强字段可读性),zerofill(数字字段前补零以满足格式),主键(唯一标识表中每行记录),自增长(自动生成唯一数字标识符),唯一键(确保字段或字段组合值唯一),以及外键(维护表间关系和数据完整性)等核心概念。
2025-03-19 20:00:13
1477
26
原创 【MySQL】数据类型
本篇文章全面介绍了数据库中的数据类型,包括数值类型、字符串类型、日期和时间类型,以及特殊的enum和set类型。在数值类型中,详细讲解了整数类型(以tinyint为例)、bit类型以及浮点数类型(float和decimal)。对于字符串类型,对比了char和varchar的异同。此外,还介绍了日期和时间类型以及enum和set这两种特殊的数据类型。
2025-03-18 10:36:41
1978
70
原创 【MySQL】表的操作
本篇文章讲述了数据库表的创建、查看、删除及修改等基础操作。首先,介绍了创建表的步骤,随后,详细阐述了如何查看当前数据库中的表列表、具体表的详细信息以及表的创建命令。在删除表方面,给出了明确的操作步骤。此外,还深入探讨了修改表的操作,包括增加、修改和删除字段,以及更改表名称。
2025-03-18 10:36:03
2362
26
原创 【MySQL】数据库的操作
本篇文章详细介绍了数据库创建、字符集与校验规则、数据库操作等关键内容。首先,讲述了创建数据库的语法和具体案例。接着,深入讲解了字符集和校验规则的定义、系统默认设置、数据库支持的字符集及其校验规则。此外,本篇文章还详细描述了数据库的基本操作,包括查看、删除、显示创建语句、修改以及备份和恢复等,并特别强调了备份和恢复过程中的注意事项。
2025-03-17 23:59:54
946
22
原创 【MySQL】数据库基础
本篇文章全面介绍了数据库的基本概念、主流类型、基本使用、MySQL架构、SQL分类以及存储引擎等相关知识。首先,阐述了数据库的定义、存在的必要性及其本质,即在计算机系统中用于存储和组织数据的重要工具。接着,介绍了当前主流的数据库类型。在基本使用部分,详细讲解了如何连接服务器,并解析了服务器、数据库和表之间的关联。此外,深入探讨了MySQL的架构和SQL的分类。最后,本篇文章还讲述了存储引擎的概念、查看方法以及不同存储引擎之间的对比。
2025-03-17 23:58:43
975
21
原创 【C++】IO流
本篇文章概述了C语言与C++中的输入输出机制。首先介绍了C语言的输入输出基础,随后解释了流的概念。接着详细探讨了C++中的IO流,包括标准IO流和文件IO流(涉及二进制与文本读写)。此外,还简要介绍了stringstream的用途。希望本篇文章对大家学习IO流有所帮助。
2025-02-15 14:59:05
2195
96
原创 【C++】C++的类型转换
本篇文章概要性地介绍了C语言与C++中的类型转换机制。首先,回顾了C语言中的类型转换方式。然后,阐述了C++为何需要四种强制类型转换(static_cast、reinterpret_cast、const_cast、dynamic_cast),以适应其面向对象的特性及复杂的类层次结构。接着,详细说明了这四种强制类型转换的使用场景与特点。此外,简要介绍了RTTI(运行时类型识别)的概念。希望本篇文章对大家学习C++类型转换有所帮助。
2025-02-15 14:57:19
808
45
原创 【C++】智能指针
本篇文章探讨了智能指针的必要性、内存泄漏问题以及智能指针的使用与原理。首先,智能指针用于自动管理内存,避免手动释放导致的错误。其次,内存泄漏会浪费资源并可能导致程序崩溃,需采取措施避免。智能指针包括auto_ptr、unique_ptr、shared_ptr和weak_ptr,它们基于RAII原理工作,各有特点和适用场景。文章还涉及了智能指针的模拟实现及shared_ptr的线程安全、循环引用问题。
2025-01-29 21:01:45
1118
98
原创 【C++】特殊类设计
本篇文章介绍了五种C++类设计技巧:一、禁止拷贝的类,通过删除拷贝构造函数实现;二、堆上创建对象的类,将析构函数设为非公开并提供静态工厂方法;三、栈上创建对象的类,禁用new和delete;四、禁止继承的类,使用final关键字;五、单例模式的饿汉与懒汉实现。
2025-01-29 21:01:19
2507
51
原创 【Linux】多线程(一)
本篇文章深入探讨了线程的概念、控制、互斥、可重入性、线程安全性以及死锁和线程同步等关键主题。首先,文章阐述了线程的基本概念、优缺点及其在内存管理和进程中的角色。接着,详细讨论了线程的控制机制,包括创建、终止、等待和管理等方面。在互斥部分,文章介绍了互斥量的接口、使用及其实现原理。随后,文章区分了可重入与线程安全的概念,并列举了常见的情况和联系。针对死锁问题,文章阐述了死锁的概念、必要条件及避免算法。最后,文章探讨了线程同步的概念及条件变量的使用。希望本篇文章对大家学习多线程有所帮助。
2025-01-21 14:34:25
3827
95
原创 【Linux】多线程(二)
本文全面探讨了多线程编程中的经典问题及其解决方案。首先,深入解析了生产者消费者模型,并展示了基于BlockingQueue的实现。随后,回顾了POSIX信号量的概念,并通过环形队列的生产消费模型展示了其应用。文章还简要介绍了读者写者问题,包括其模型理解、读写锁接口及三种策略。此外,还概述了自旋锁的概念、接口、优缺点及注意事项。最后,文章探讨了STL容器和智能指针的线程安全性。希望本篇文章对大家学习多线程有所帮助。
2025-01-21 14:33:47
2030
49
原创 【Linux】信号
本篇文章全面探讨了信号在操作系统中的作用及其处理机制。首先介绍了信号的基本概念,随后详细阐述了信号的产生方式,包括通过键盘、系统调用(如kill、raise、abort函数)、异常、软件条件(如关闭管道读端、alarm函数)等方式。接着,文章讨论了信号的保存方法,包括信号集sigset_t和相关函数的使用。在信号处理部分,着重介绍了信号捕捉和sigaction函数。最后,文章补充了与信号相关的重要概念,如可重入函数、volatile关键字和SIGCHLD信号的处理。希望本篇文章对大家学习信号有所帮助。
2025-01-16 14:25:55
2426
54
原创 【C++】异常
本篇文章概述了C语言与C++在处理错误机制上的不同,首先介绍了C语言传统的错误处理方式,随后详细阐述了C++中的异常概念,包括异常的抛出与捕获、重新抛出、异常安全及异常规范。文章还探讨了自定义异常体系和C++标准库的异常体系。最后,分析了C++异常机制的优缺点,为理解和应用C++异常处理提供了全面指导。希望本篇文章对大家学习异常有所帮助。
2025-01-16 14:24:42
791
23
原创 【C++】C++11(二)
本篇文章全面介绍了C++11在模板、lambda表达式、包装器及线程库方面的新特性。首先,探讨了可变参数模板的灵活性。随后,深入解析了lambda表达式的语法及其与函数对象的对比,展示了C++11在匿名函数编程上的进步。此外,文章还介绍了function包装器和bind函数,以及C++11线程库,包括线程管理、锁机制、条件变量和原子操作,为并发编程提供了强大支持。希望本篇文章对大家学习C++11有所帮助。
2025-01-10 15:36:35
2582
85
原创 【C++】C++11(一)
本篇文章概述了C++11的主要特性。首先简介C++11,随后详述了统一的列表初始化,包括{}初始化和std::initializer_list。接着阐述新型声明方式,如auto、decltype类型推导及nullptr替代NULL。文章还介绍了范围for循环、智能指针、STL变化及右值引用和移动语义。在类功能方面,探讨了默认成员函数、成员变量初始化、default和delete关键字的作用,以及final与override在继承和多态中的应用,展示了C++11在提升代码简洁性、安全性和性能方面的显著进步。
2025-01-10 15:33:00
1073
29
原创 【Linux】线程池
本篇文章涵盖多线程编程中的几个关键方面:线程的封装确保线程管理的便捷与安全;锁的封装保护共享资源,避免并发冲突;日志实现助力程序调试与运行监控;任务实现探讨任务分配与执行机制;线程池实现及测试,包括标准实现与懒汉模式,提升资源利用率与性能。
2025-01-05 20:02:14
1674
77
原创 【优选算法】优先级队列(堆)
本篇文章列举了四个经典的LeetCode算法题目,包括最后一块石头的重量、数据流中的第K大元素、前K个高频单词和数据流的中位数。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对优先级队列的理解。
2025-01-05 20:01:19
1839
31
原创 【Linux】进程间通信(二)
本篇文章概述了System V IPC(进程间通信)机制,包括共享内存、消息队列和信号量。共享内存部分详细讲解了其原理及关键函数如ftok、shmget、shmat、shmdt、shmctl。消息队列和信号量部分简要介绍了其原理和主要函数。文章最后探讨了内核对IPC资源的看法。
2025-01-01 16:53:11
2199
93
原创 【Linux】进程间通信(一)
本篇文章概述了进程间通信的目的、理解、发展及分类,并重点介绍了管道通信机制,在匿名管道部分,详细讲解了pipe函数、实现方式及小结,包括四种常见情况和五种关键特性,并提及了匿名管道在进程池中的应用。命名管道部分则从指令级和代码级两个层面,分别介绍了其创建与使用方法。
2025-01-01 16:47:16
1160
29
原创 【Linux】动静态库
本篇文章介绍了静态库与动态库的相关概念,包括静态库的创建与使用,以及动态库的创建、使用和使操作系统找到动态库的多种方法。文章还阐述了动态库的加载过程,包括ELF格式、可执行程序中的地址、绝对编址和相对编址等关键内容。文章最后还谈到了进程地址空间,有关于CPU如何找到程序入口,以及CPU执行程序时,虚拟地址到物理地址的转换过程。希望本篇文章对大家了解静态库与动态库的基本原理和使用方法,以及动态库在操作系统中的加载机制有所帮助。
2024-12-26 10:35:53
2034
88
原创 【优选算法】队列+宽搜(BFS)
本篇文章列举了四个经典的LeetCode算法题目,包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度和在每个树行中找最大值。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对队列与宽度搜索的理解。
2024-12-26 10:30:40
1273
33
原创 【Linux】基础IO(磁盘文件)
本篇文章全面概述了文件系统、磁盘存储结构及其逻辑抽象,包括磁盘的物理与逻辑层面。简略探讨了磁盘分区与格式化。接着,深入解析了磁盘存储的逻辑抽象结构,包括inode表、数据块、位图、块组描述符及超级块等关键组成部分。此外,文章还介绍了目录文件的基本概念和查找方法,以及软链接与硬链接的区别与用途,并解释了为何用户无法对目录产生硬链接。最后,阐述了ACM时间(Access、Modify、Change时间)的定义与更新机制,希望本篇文章对大家有所帮助。
2024-12-21 10:54:44
2475
92
原创 【优选算法】栈
本篇文章列举了五个经典的LeetCode算法题目,包括删除字符串中的所有相邻重复项、比较含退格的字符串、基本计算器Ⅱ、字符串解码和验证栈序列。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对栈的理解。
2024-12-21 10:53:33
1385
33
原创 【Linux】基础IO(内存文件)
本篇文章首先复习了常见的C语言文件接口,接着深入认识了操作文件的系统调用,并详细说明了Linux中的常见传参方法。文章进一步探讨了C语言文件接口与文件系统接口的关系,并引入了文件描述符(fd)的概念,解释了fd为0、1、2的文件及其意义。同时,阐述了操作系统下一切皆文件的理解,以及C语言中FILE的概念。此外,还深入理解了struct file内核对象、fd的分配规则以及重定向等相关内容。最后,文章对缓冲区进行了简单介绍,并通过样例和原理简单的模拟实现了stdio.h,希望本篇文章对大家有所帮助。
2024-12-14 11:10:50
1648
102
原创 【优选算法】字符串
本篇文章列举了四个经典的LeetCode算法题目,包括最长公共前缀、最长回文子串、二进制求和和字符串相乘。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对字符串的理解。
2024-12-14 11:03:55
1564
42
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人