自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(263)
  • 资源 (5)
  • 收藏
  • 关注

原创 【项目设计】自主HTTP服务器

本项目实现的是一个HTTP服务器,项目中将会通过基本的网络套接字读取客户端发来的HTTP请求并进行分析,最终构建HTTP响应并返回给客户端。HTTP在网络应用层中的地位是不可撼动的,无论是移动端还是PC端浏览器,HTTP无疑是打开互联网应用窗口的重要协议。该项目将会把HTTP中最核心的模块抽取出来,采用CS模型实现一个小型的HTTP服务器,目的在于理解HTTP协议的处理过程。该项目主要涉及C/C++、HTTP协议、网络套接字编程、CGI、单例模式、多线程、线程池等方面的技术。

2022-11-24 11:44:30 9470 70

原创 【项目设计】高并发内存池

文章目录项目简介内存池的概念定长内存池的实现整体框架设计threadcachethreadcache整体设计threadcache哈希桶映射对齐规则threadcacheTLS无锁访问centralcachecentralcache整体设计centralcache结构设计centralcache核心实现pagecachepagecache整体设计pagecache中获取Span申请内存过程联调threadcache回收内存centralcache回收内存pagecache回收内存释放内存过程联调大于256K

2022-03-28 22:11:37 26640 148

原创 Golang流程控制语句

在使用for range遍历string时,它会按照UTF-8编码格式解析字符串,并以Unicode字符作为迭代的单位,每次迭代都会返回字符串中的一个Unicode字符(rune)和对应的索引,无论是单字节的ASCII字符还是多字节的汉字,都会被正确地解析并返回。在执行完对应的case语句的代码块后,程序会直接退出switch控制,如果希望程序继续执行下一个case语句的代码块,可以在代码块的最后通过fallthough关键字实现switch穿透。在switch后声明的变量仅在switch语句中有效。

2024-04-24 20:40:33 870 13

原创 Golang数据类型

Go中的每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间。具体来说,Go中的数据类型可分为基本数据类型和复杂数据类型。

2024-04-21 16:16:52 1178 12

原创 Golang入门基础

Go语言(又称Golang)是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,由罗伯特·格瑞史莫(Robert Griesemer)、罗布·派克(Rob Pike)及肯·汤普森(Ken Thompson)于2007年9月开始设计。

2024-04-18 22:55:40 1203 15

原创 MySQL知识总结(内附超详细知识框架图)

博友们,你们好!博主最近对MySQL相关的知识进行了复盘,并通过思维导图的方式提取出了MySQL的核心知识点,现将复盘结果分享给大家,希望能够对大家学习MySQL有所帮助。

2023-10-27 15:40:38 2520 17

原创 Rust所有权

所有程序在运行时都必须管理其使用计算机内存的方式,一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存,比如C#和Java。在另一些语言中,程序员必须自行分配和释放内存,比如C/C++。而Rust则是通过所有权系统管理内存,所有权是Rust最独特的特性,它让Rust无需GC就可以保证内存安全,通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查,如果违反了所有权规定,则程序不能通过编译。在程序运行时,所有权系统不会减慢程序的运行速度,因为所有权规则的检查是在编译时进行的。

2023-10-24 14:03:08 1332 18

原创 Rust通用编程概念

在Rust中,声明变量使用let关键字,并且默认情况下,声明的变量是不可变的,要使变量可变需要在声明变量时,在变量前面加上mut关键字。如果将上述代码中的mut关键字去掉,那么在编译代码时就会报错,报错结果就是不能对不可变的变量进行二次赋值,也就是不能对不可变的变量进行修改。

2023-10-20 09:11:50 1103 19

原创 猜数字游戏(Rust实现)

Rust团队没有把随机数字生成功能内置到标准库中,而是选择将它作为rand包(rand crate)提供给用户。Rust中的包(crate)代表了一系列源代码文件的集合,我们当前正在构建的项目是一个用于生成可执行程序的二进制包(binary crate),而我们引用的rand包则是一个用于复用功能的库包(library crate)。rand包中有一个名为Rng的trait,它定义了随机数生成器需要实现的方法集合,比如Rng中的gen_range方法可以根据指定的范围来生成随机数。

2023-10-17 18:55:56 1629 21

原创 Rust入门基础

Rust是一种通用的编程语言,它可以让每个人编写可靠且高效的软件。Rust可以用来替换C/C++,Rust和它们具有同样的性能,但是很多常见的bug在编译时就可以被消灭。Rust能够保证内存安全(无需GC),并且易于维护、调试,代码既安全又高效。

2023-10-11 11:29:04 1610 27

原创 高阶数据结构 ——— 图

文章目录图图的基本概念图的存储结构邻接矩阵邻接表图的遍历广度优先遍历深度优先遍历最小生成树Kruskal算法Prim算法最短路径单源最短路径-Dijkstra算法单源最短路径-Bellman-Ford算法多源最短路径-Floyd-Warshall算法图图的基本概念图的基本概念图是由顶点集合和边的集合组成的一种数据结构,记作 G=(V,E)G=(V, E)G=(V,E) 。有向图和无向图:在有向图中,顶点对 <x,y><x, y><x,y> 是有序的,顶点

2023-06-05 20:07:10 2521 45

原创 高阶数据结构 ——— 并查集

并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。并查集通常用森林来表示,森林中的每棵树表示一个集合,树中的结点对应一个元素。虽然利用其他数据结构也能完成不相交集合的合并及查询,但在数据量极大的情况下,其耗费的时间和空间也是极大的。

2023-04-28 15:57:42 1480 21

原创 KMP算法

KMP算法是一种改进的字符串匹配算法,是由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此叫做KMP算法。KMP算法的核心就是利用匹配失败后的信息,尽量减少模式串与文本串的匹配次数,以达到快速匹配的目的。

2023-04-24 20:29:42 2949 28

原创 MySQL使用C语言连接

MySQL使用C语言连接

2023-02-20 14:45:03 1999 32

原创 MySQL用户管理

与Linux操作系统类似,MySQL中也有超级用户和普通用户之分。如果一个用户只需要访问MySQL中的某一个数据库,甚至数据库中的某一个表,那么可以为其创建一个普通用户,并为该用户赋予对应的权限,而不让该用户看到数据库中的其他数据,防止该用户对其他数据进行误操作。

2023-02-16 09:37:55 3231 34

原创 MySQL视图特性

视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据。视图中的数据并不会单独存储在数据库中,其数据来自定义视图时查询所引用的表(基表),在每次引用视图时动态生成。由于视图和基表用的本质是同一份数据,因此对视图的修改会影响到基表,对基表的修改也会影响到视图。

2023-02-13 10:35:58 1332 23

原创 MySQL事务管理

事务由一条或多条SQL语句组成,这些语句在逻辑上存在相关性,共同完成一个任务,事务主要用于处理操作量大,复杂度高的数据。比如转账就涉及多条SQL语句,包括查询余额(select)、在当前账户上减去指定金额(update)、在指定账户上加上对应金额(update)等,将这多条SQL语句打包便构成了一个事务。MySQL同一时刻可能存在大量事务,如果不对这些事务加以控制,在执行时就可能会出现问题。比如单个事务内部的某些SQL语句执行失败,或是多个事务同时访问同一份数据导致数据不一致的问题。

2023-02-09 19:10:51 5163 36

原创 MySQL索引特性

数据库表中存储的数据都是以记录为单位的,如果在查询数据时直接一条条遍历表中的数据记录,那么查询的时间复杂度将会是O(N)。索引的价值在于提高海量数据的检索速度,只要执行了正确的创建索引的操作,查询速度就可能提高成百上千倍。当一张表创建索引后,在数据库底层就会为表中的数据记录构建特定的数据结构,后续在查询表中数据时就能通过查询该数据结构快速定位到目标数据。索引虽然提高了数据的查询速度,但在一定程度上也会降低数据增删改的效率。

2023-01-31 14:57:26 1996 28

原创 MySQL内外连接

表的连接分为内连接和外连接,外连接分为左外连接和右外连接。

2023-01-25 10:16:00 15738 37

原创 MySQL复合查询

实际开发中往往需要将多张表关联起来进行查询,这就叫做多表查询,在进行多表查询时,只需要将多张表的表名依次放到from子句之后,用逗号隔开即可,这时MySQL将会对给定的这多张表取笛卡尔积,作为多表查询的初始数据源。多表查询的本质,就是对给定的多张表取笛卡尔积,然后在笛卡尔积中进行查询。所谓的对多张表取笛卡尔积,就是得到这多张表的记录的所有可能有序对组成的集合,需要注意的是,对多张表取笛卡尔积后得到的数据并不都是有意义的。

2023-01-15 10:44:42 2942 37

原创 CSDN编程竞赛 ——— 第二十一期

CSDN第二十一期编程竞赛总结

2023-01-10 18:18:21 5241 31

原创 MySQL内置函数

本文介绍了MySQL中常用的一些日期函数、字符串函数、数学函数,以及其他的一些函数。

2023-01-06 11:09:46 2844 35

原创 MySQL表的增删查改

表的增删查改简称CRUD:Create(新增),Retrieve(查找),Update(修改),Delete(删除)。CRUD的操作对象是对表当中的数据,是典型的DML(Data Manipulation Language)数据操作语言。

2023-01-02 22:02:56 3337 39

原创 学生管理系统(Python实现)

学生管理系统是为了对学校学生信息进行管理而开发的一款软件,下面我们来实现一个命令行版本的学生管理系统,该学生管理系统包括如下几个功能:新增学生信息、显示学生信息、查找学生信息、删除学生信息、学生信息存档

2022-12-27 11:21:25 2053 24

原创 MySQL表的约束

真正约束字段的是数据类型,如果插入的数据超出了对应数据类型的取值范围,那么数据将会插入失败。但是数据类型的约束很单一,为了更好的保证数据的合法性,从业务逻辑角度保证数据的正确性,MySQL中出现了表的约束,目的就是为了尽可能保证数据安全,减少用户的误操作可能性。表的约束有很多,本篇博客主要介绍如下几个:null/not null、default、comment、zerofill、primary key、auto_increment、unique key、foreign key。

2022-12-22 17:47:03 2329 31

原创 Python操作Excel

xlrd是Python处理Excel表格数据的一个模块,能够对Excel中的数据进行读取。

2022-12-16 19:42:21 5609 24

原创 MySQL数据类型

数据类型决定了存储数据时应该开辟的空间大小,决定了如何识别一个特定的二进制序列,决定了数据的取值范围等。MySQL本身是不支持bool类型的,当把一个数据设置成bool类型时,数据库会自动将其转换成tinyint(1)的数据类型,其实这个就是变相的bool类型,因为tinyint(1)只有1和0两种取值,可以分别对应bool类型的true和false。

2022-12-10 15:52:12 2654 27

原创 MySQL表的操作

表操作至少会涉及如下两类SQL语句:DDL(Data Definition Language)数据定义语言:比如建表、删表、该表、新增列、删除列等。DML(Data Manipulation Language)数据操作语言:比如插入记录、删除记录、修改记录等。本篇博客讲的是表的DDL操作,也就是操作表结构的SQL语句。

2022-12-07 10:02:36 2895 40

原创 MySQL库的操作

创建数据库的SQL如下:CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSET=charset_name] [[DEFAULT] COLLATE=collation_name];说明一下:SQL中大写的表示关键字,[ ]中代表的是可选项。CHARSET用于指定数据库所采用的编码格式。COLLATE用于指定数据库所采用的校验规则。注意: 如果创建数据库时未指明数据库的编码格式或校验规则,则默认使用MySQL配置文件中对应的编码格式或校验规则。

2022-12-03 20:56:41 3980 44

原创 MySQL数据库基础

数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。虽然单纯的使用文件也可以存储数据,但会存在如下缺点:安全性问题:数据误操作后无法进行回滚。不利于数据的查询和管理:没有将存储的数据以某种数据结构组织起来。控制不方便:数据的控制需要用户自己来完成。不利于存储海量数据:数据量越大用户操控数据的成本越高。为了解决上述问题,于是专家们设计出了更利于管理数据的数据库。

2022-11-30 09:59:59 4461 42

原创 Python库的使用

库就是别人已经写好了的代码,我们可以直接拿来用。一个编程语言能否流行起来,一方面取决于其语法是否简单方便容易学习,另一方面取决于其生态是否完备。所谓的生态就是指,该语言是否有足够丰富的库来应对各种编程场景。在编程过程中并发所有代码都需要自己写,而是要充分利用现成的库来简化开发过程,因此如果一个语言有足够丰富的库,就能够降低程序员的学习成本,提高程序的开发效率。

2022-11-28 13:37:12 2984 6

原创 CSDN编程竞赛 ——— 第十期

CSDN第十期编程竞赛总结

2022-11-26 16:13:51 2798 3

原创 Python文件操作

打开文件的方式有以下几种:| 'r' | 以读方式打开文件(默认) || 'w' | 以覆盖写方式打开文件,如果文件不存在则先创建再打开 || 'a' | 以追加写方式打开文件,如果文件不存在则先创建再打开 || 'x' | 创建文件并以写方式打开,如果文件已存在则会抛出异常 || 'b' | 以二进制方式打开文件 || 't' | 以文本方式打开文件(默认) || '+' | 打开磁盘文件进行更新(读取与写入) |

2022-11-17 13:53:12 793 11

原创 文件搜索工具(Python实现)

文件搜索工具能够基于名称快速定位匹配的文件和文件夹位置,比如Everything就是Windows上的一款文件搜索工具:下面我们实现一个简单的文件搜索工具。文件搜索的步骤分为两步:需要注意的是,在搜索时并不是只在用户指定的那一级目录下进行搜索,如果该目录下存在子目录,那么还需要在该子目录下进行搜索。例如,我们在D盘下创建了一个名为TestDir的目录,该目录中的文件布局如下:当我们指定在TestDir目录下以test为关键字进行查找时,我们希望的是找出TestDir目录及其子目录下,所有包含test关键字的

2022-11-14 15:17:50 2149 35

原创 Python数据类型 ——— 字典

字典(dict)是一个无序、可变和有索引的集合,字典中不允许存在重复的成员。

2022-11-11 15:05:56 883 5

原创 Python数据类型 ——— 集合

集合(set)是一个无序和无索引的集合,集合中不允许存在重复的成员。

2022-11-08 18:23:06 1096 32

原创 坤坤音效键盘(Python实现)

坤坤音效键盘说明:1. 单独按下 $j、n、t、m$ 按键,会对应触发 “鸡”、“你”、“太”、“美” 音效。2. 连续按下 $jntm$ 按键,会触发 “鸡你太美” 的较长音效。3. 连续按下 $ngm$ 按键,会触发 “你干嘛” 的较长音效。4. 按下Esc按键,会触发 “鸡你太美版《澎湖湾》” 的长音效。5. 按下左Ctrl键,会触发 “鸡你太美版《想某人》” 的超长音效。6. 按下小键盘上的数字键或小数点键,停止播放音频并终止程序。

2022-11-04 10:52:50 13021 66

原创 Python数据类型 ——— 元组

元组(tuple)是一种有序且不可更改的集合,元组中允许存在重复的成员。

2022-11-02 15:06:29 2649 10

原创 Python数据类型 ——— 列表

列表(list)是一种有序和可更改的集合,列表中允许存在重复的成员。

2022-10-31 15:05:11 1212 39

原创 Python函数

函数的定义格式一个函数可以有一个或多个形参,也可以没有形参。一个函数中可以有一个或多个return语句,执行到return语句时函数会立即执行结束,回到调用位置。Python是动态类型语言,函数的形参和返回值都不必指定类型,因此一个函数可以支持多种不同类型的参数。多个返回值此外,Python中的一个函数可以有一个或多个返回值,当有多个值需要返回时,使用,来分隔这多个返回值。

2022-10-27 14:05:04 1586 14

MySQL知识总结思维导图

MySQL知识总结思维导图,压缩包内包含MySQL数据库基础、MySQL库的操作、MySQL表的操作(DDL)、MySQL数据类型、MySQL表的约束、MySQL基本查询(DML)、MySQL内置函数、MySQL复合查询、MySQL内外连接、MySQL索引特性、MySQL事务管理、MySQL视图特性、MySQL用户管理、C语言连接MySQL数据库的Xmind思维导图,以及对应导出的jpg图片,思维导图内容可以参考博主的博客:https://blog.csdn.net/chenlong_cxy/article/details/134077741?spm=1001.2014.3001.5501

2023-10-27

C++知识总结思维导图

C++知识总结思维导图,压缩包内包含C++基础、类和对象、C/C++内存管理、模板、C++的IO流、继承、多态、C++11、异常、智能指针、特殊类设计、C++的类型转换、STL的Xmind思维导图,以及对应导出的jpg图片,思维导图内容可以参考博主的博客:https://blog.csdn.net/chenlong_cxy/article/details/127166206#comments_24702593

2022-12-29

坤坤音效键盘可执行程序

Python实现坤坤音效键盘,压缩包内含有两个exe程序,KunKunKeyboard1.exe运行后会显示窗口,KunKunKeyboard2.exe运行后不显示窗口,压缩包中还包括一个说明文档,里面说明了终止程序的方式。

2022-11-04

Python基础语法PPT

Python基础语法PPT,说明了Python与C语言之间最大的两个区别,其中讲解的Python语法主要包括:Python基础知识、函数、面向对象、数据类型、条件&循环、文件操作、模块、异常,并列出了Python中常见数据类型对应的各种成员函数接口及其功能。

2022-07-10

【C++项目设计】高并发内存池.zip

本项目实现的是一个高并发的内存池,它的原型是Google的一个开源项目tcmalloc,tcmalloc全称Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替换系统的内存分配相关函数malloc和free。该项目就是把tcmalloc中最核心的框架简化后拿出来,模拟实现出一个mini版的高并发内存池,目的就是学习tcmalloc的精华。该项目主要涉及C/C++、数据结构(链表、哈希桶)、操作系统内存管理、单例模式、多线程、互斥锁等方面的技术。 项目详解:https://blog.csdn.net/chenlong_cxy/article/details/122819562?spm=1001.2014.3001.5502

2022-05-28

空空如也

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

TA关注的人

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