自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【实战项目】自主web服务器

自主web服务器

2022-07-01 21:28:10 509

原创 跳表 skiplist

跳表

2022-08-26 12:54:39 313 1

原创 详解 B树

B树

2022-08-25 19:46:01 1250

原创 LRU Cache

LRU Cache

2022-08-25 16:10:50 267

原创 详解图(性质,结构,遍历,最小生成树,最短路径)

2022-08-25 15:25:54 866

原创 详解并查集

并查集

2022-08-25 08:49:17 235

原创 MySQL 事务管理

MySQL 事务管理

2022-07-18 11:31:34 355

原创 MySQL 索引

MySQL 索引

2022-07-18 11:17:57 110

原创 MySQL C语言连接

MySQL C语言连接

2022-07-18 10:29:13 497

原创 MySQL 用户管理

MySQL 用户管理

2022-07-15 16:15:18 101

原创 MySQL 视图

MySQL 视图

2022-07-15 11:49:59 84

原创 Linux 高级IO

Linux 高级IO

2022-06-30 15:00:32 405

原创 MySQL 表的内连和外连

MySQL 表的内连和外连

2022-06-28 14:37:27 266

原创 MySQL 复合查询

MySQL 复合查询

2022-06-28 14:33:54 290

原创 MySQL 内置函数

MySQL 内置函数

2022-06-28 14:16:30 169

原创 MySQL 表的增删查改

MySQL 表的增删查改

2022-06-24 16:28:55 474

原创 MySQL 表的约束

MySQL 表的约束

2022-06-12 12:26:43 282

原创 MySQL 数据类型

MySQL 数据类型

2022-06-12 12:13:17 182

原创 MySQL相关操作

文章目录库的操作创建数据库字符集和校验规则查看系统默认字符集以及校验规则校验规则对数据库的影响操纵数据库备份和恢复查看连接情况表的操作创建表查看表结构修改表删除表库的操作创建数据库语法:create database [if not exists] db_name [create_specification [, create_specification] ...] create_specification: [default] character set charset_name [def

2022-06-12 10:19:45 142

原创 MySQL 数据库基础

文章目录什么是数据库主流数据库MySQL的基本使用连接服务器服务器,数据库,表关系使用案例MySQL架构SQL分类存储引擎什么是数据库数据库是专门做数据管理的一款管理软件存储数据用文件就可以了,为什么还要引入数据库呢?文件保存数据有以下几个缺点:文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库存储介质为磁盘和内存。下图可以帮助我们了解MySQL还有一点

2022-06-12 09:54:11 262

原创 centos 安装MySQL

文章目录更新yum源安装yum源更新yum源查看云服务器中是否有MySQL安装前需要更新yum源,指令如下下载yum源安装包wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm下载完后文件中多了一个安装包安装yum源sudo rpm -Uvh mysql-community-release-el7-5.noarch.rpm此时yum源会比原来的多出两个文件接下来可以通过如下指令查看与系统相适配的M

2022-06-12 09:02:21 85

原创 数据链路层和其他重要协议或技术

文章目录一级目录一级目录tcp提供策略IP执行:提供数据转发依据,让我们能找到目标主机MAC:将数据帧交付给它的下一跳设备(路由器,主机)mac解决相邻主机的通信问题,相邻主机一定是属于同一个网段mac帧实际上是局域网通信原理......

2022-05-17 18:36:42 256

原创 网络基础 IP协议

文章目录IP协议的基本概念IP协议报头格式网段划分IP协议的基本概念主机: 配有IP地址, 但是不进行路由控制的设备;路由器: 即配有IP地址, 又能进行路由控制;节点: 主机和路由器的统称IP协议报头格式4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是44位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的数字是15, 因此IP头部最大长度是60字节8位服务类型(Ty

2022-05-17 17:47:34 1277

原创 TCP协议

文章目录TCP冯诺依曼体系TCP协议段格式确认应答(ACK)机制超时重传机制连接管理机制滑动窗口TCPTCP是可靠的,UDP是不可靠的,那为什么还要UDP呢?可靠和不可靠是相对而言的,TCP有更复杂的保障可靠性的机制,它一定是一个复杂的协议。UDP没有复杂的机制,实现起来也相当简单。如果不知道使用什么协议,建议还是使用TCP。冯诺依曼体系结论:为何要专门设计TCP/IP协议??因为通信的设备之间“线更长了”!TCP协议段格式什么叫做可靠性?利用确认应答机制,不是对最新数据的可靠保证,而是

2022-05-12 15:07:39 605

原创 【实战项目】高并发内存池

文章目录项目介绍内存池技术设计一个定长的内存池高并发内存池整体框架设计thread cachethread cache整体框架threadcache哈希桶映射对齐规则thread cache申请内存项目介绍当前项目是实现一个高并发的内存池,他的原型是google的一个开源项目tcmalloc,tcmalloc全称Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数(malloc、free)。这个项目是把tcmalloc最核

2022-05-07 10:34:59 1032

原创 UDP协议

文章目录再谈端口号端口号范围划分认识知名端口号(Well-Know Port Number)进程和端口号两个问题netstatpidofUDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议再谈端口号端口号(Port)标识了一个主机上进行通信的不同的应用程序;在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看).端口号范围划分0

2022-05-01 17:30:46 544

原创 HTTP协议

文章目录再谈 "协议"模拟实现网络版计算器再谈 “协议”我们程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层协议是一种 “约定”. socket api的接口, 在读写数据时, 都是按 “字符串” 的方式来发送接收的. 如果我们要传输一些"结构化的数据" 怎么办呢?模拟实现网络版计算器例如, 我们需要实现一个服务器版的计算器. 我们需要客户端把要计算的两个数和符号发过去, 然后由服务器进行计算, 最后再把结果返回给客户端。实现程序前我们先做约定客户端依次输入 数

2022-05-01 16:30:23 242

原创 Linux网络编程套接字

文章目录预备知识理解源IP地址和目的IP地址理解 "端口号" 和 "进程ID"理解源端口号和目的端口号认识TCP协议认识UDP协议网络字节序点分十进制IP和uint32_t整数相互转换预备知识理解源IP地址和目的IP地址在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址源IP地址: 表示该条信息来源于哪个机器。目的IP地址: 表示该条信息去往于哪个进程理解 “端口号” 和 “进程ID”我们之前在学习系统编程的时候, 学习了 pid 表示唯一一个进程; 此处我们的端口号

2022-04-14 17:33:30 2649 1

原创 C++的IO流

文章目录一级目录一级目录

2022-04-12 12:00:05 279

原创 C++智能指针

文章目录为什么需要智能指针?内存泄漏什么是内存泄漏,内存泄漏的危害内存泄漏分类(了解)如何避免内存泄漏智能指针的使用及原理RAII智能指针的原理auto_ptrunique_ptrshared_ptrC++11和boost中智能指针的关系为什么需要智能指针?为了解决内存泄漏的问题,C++中提出了智能指针。内存泄漏的产生原因有很多,即使我们正确的使用malloc和free关键字也有可能产生内存泄漏,如在malloc和free之间如果存在抛异常,那也会产生内存泄漏。这种问题被称为异常安全。例void

2022-04-05 14:47:37 3160 1

原创 C++的类型转换

文章目录C语言中的类型转换为什么C++需要四种类型转换C++强制类型转换static_cast类型转换reinterpret_castconst_castdynamic_castC语言中的类型转换在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败。显式类型转化:需要用户自己处理例:voi

2022-04-05 08:46:46 1082

原创 C++——异常

文章目录C语言传统的处理错误的方式C++异常概念异常的使用异常的抛出和捕获异常的重新抛出异常安全异常规范自定义异常体系C语言传统的处理错误的方式传统的错误处理机制:终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码放到errno中,表示错误。C 标准库中setjmp和longjmp组合。实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严

2022-04-04 08:26:25 221

原创 Linux网络基础

文章目录网络发展认识 "协议"OSI七层模型TCP/IP五层(或四层)模型网络传输基本流程网络发展网络发展经理了如下四个过程独立模式: 计算机之间相互独立;网络互联: 多台计算机连接在一起, 完成数据共享3. 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起4. 广域网WAN: 将远隔千里的计算机都连在一起所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如中国的广域网, 也可以看做一个比较大的局域网。认识 “协议”“协议” 是一种约定.计算机之间

2022-04-02 11:00:26 86

原创 Linux线程安全

文章目录Linux线程互斥进程线程间的互斥相关背景概念互斥量mutex互斥量的接口互斥量实现原理探究可重入VS线程安全概念常见的线程不安全的情况常见的线程安全的情况常见的不可重入的情况常见的可重入的情况可重入与线程安全联系可重入与线程安全区别死锁概念死锁四个必要条件避免死锁Linux线程互斥进程线程间的互斥相关背景概念临界资源: 多线程执行流共享的资源就叫做临界资源临界区: 每个线程内部,访问临界资源的代码,就叫做临界区互斥: 任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对

2022-03-30 16:36:22 2137

原创 C++11常用知识点(下)

文章目录lambda表达式lambda表达式lambda表达式语法函数对象与lambda表达式包装器function包装器bind线程库thread类的简单介绍线程函数参数原子性操作库(atomic)lock_guard与unique_lockmutex的种类lock_guardunique_lock两个线程交替打印,一个打印奇数,一个打印偶数lambda表达式在C++98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法。#include <algorithm>

2022-03-28 16:20:58 1761

原创 C++11常用知识点(上)

文章目录C++11简介统一的列表初始化{}初始化std::initializer_list声明autodecltypenullptr范围for循环STL中一些变化C++11简介在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++

2022-03-28 16:20:41 624

原创 Linux多线程

文章目录线程概念什么是线程线程的优点线程的缺点线程异常线程用途Linux进程VS线程进程和线程进程的多个线程共享Linux线程控制POSIX线程库创建线程线程终止pthread_exitpthread_cancel线程概念什么是线程在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化透过进程虚拟地址

2022-03-24 09:46:23 3647

原创 特殊类设计

文章目录请设计一个类,只能在堆上创建对象请设计一个类,只能在栈上创建对象请设计一个类,不能被拷贝请设计一个类,不能被继承请设计一个类,只能在堆上创建对象实现方式:将类的构造函数私有,拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。提供一个静态的成员函数,在该静态成员函数中完成堆对象的创建class OnlyHeap{public: // 2、提供一个static公有函数创建对象,对象创建的都在堆上 static OnlyHeap* CreateObj() { return n

2022-03-14 11:24:52 975

原创 Linux进程信号

文章目录信号入门生活角度的信号技术应用角度的信号信号处理常见方式信号的本质产生信号通过终端按键产生信号信号入门生活角度的信号你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”当快递员到了你楼下,你也收到快递到来的通知,但是你正在打游戏,需5min之后才能去取快递。那么在在这5min之内,你并没有下去去取快递,但是你是知道有快递到来了。也就是取快递的行为并不是一定要立即执行,可以理解成“在合适的时候去取”。在收到通知,

2022-03-12 17:09:00 1374

原创 位图的应用

文章目录位图位图概念位图的实现布隆过滤器布隆过滤器概念布隆过滤器的实现布隆过滤器优点布隆过滤器缺陷海量数据面试题位图思考如下面试题给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。我们可能会想到遍历或排序+二分查找那我们想一下40亿个无符号整数占据多大空间呢?1G=1024MB=10241024KB=10241024*1024Byte1G大约为10亿字节,40亿个无符号整数需要160亿个字节大概16G的空间有没有什么办法能减小所用到的空间呢,这

2022-03-11 17:55:13 455 1

空空如也

空空如也

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

TA关注的人

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