自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 个人博客测试报告【项目】

1. 个人博客系统采用前后端分离的方法来实现,同时使用了数据库来存储相关的数据,同时将其部署到云服务器上。前端主要有四个页面构成:文章列表页、文章详情页以及文章创作页,以上模拟实现了最简单的个人博客系统。其结合后端实现了以下的主要功能:创作博客、查看博客等功能。2. 但是该项目没有设计文章搜索功能。3. 该个人博客系统可以实现博客记录,标题、内容以及发布者等都可以进行详细地查看。

2024-12-05 15:56:05 903

原创 性能测试基础知识&jmeter使用

目录性能指标1. 并发数 (Concurrency)2. 吞吐量 (Throughput) / QPS (Queries Per Second)3. 响应时间 (Response Time)指标之间的关系性能测试分类基准测试并发测试负载测试压力测试jmeter安装配件之间的优先级网页请求默认值JSON提取器 登录配置元件形成测试报告 定义:并发数指的是在同一时刻向系统发起请求的用户或线程的数量。换句话说,它表示的是系统在某一瞬间正在处理的请求数量。重要性:高并发数意味着系统需要同时处理更多的请求,这对服务器

2024-12-05 15:55:56 1219

原创 selenium常见接口函数使用

目录1. 查找查找方式css_selectorxpath2. 操作测试对象窗口设置窗口大小3. 屏幕截图4. 弹窗5. 等待强制等待隐式等待显式等待网页导航上传文件 6.驱动对象参数设置模式加载策略find_element(方式,“元素”) ——单个元素使用案例:find_elements(方式,“元素”) ——多个元素时使用案例:查找方式主要有css_selector,xpath等获取选择器& xpath元素: 功能:选择页面指定元素, 通过元素 id来识别,格式:“#.....”。

2024-12-05 15:55:47 1341

原创 标准日志插件项目【C/C++】

企业开发中对于运行中的程序不适合使用调试器调试。⽣产环境的产品为了保证其稳定性及安全性是不允许开发⼈员附加调试器去排查问题, 可以借助⽇志系统来打印⼀些⽇志帮助开发⼈员解决问题。问题无法复现。上线客⼾端的产品出现bug⽆法复现并解决, 可以借助⽇志系统打印⽇志并上传到服务端帮助开发⼈员进⾏分析。对于⼀些⾼频操作(如定时器、⼼跳包)在少量调试次数下可能⽆法触发我们想要的⾏为,通过断点的暂停⽅式,我们不得不重复操作⼏⼗次、上百次甚⾄更多,导致排查问题效率是⾮常低下, 可 以借助打印⽇志的⽅式查问题。

2024-10-27 16:04:26 1040 14

原创 图论基础复习【并查集 | 图遍历 | 最小生成树 | 3种最小路径算法】

关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长!嗨!收到一张超美的图,

2024-10-27 15:45:36 1297

原创 高级I/O知识分享【epoll || Reactor ET,LT模式】

目录一,接口epoll_create epoll_ctlevent 事件类型:epoll_wait二,epoll优点(相较select,poll)三,epoll有2种工作方式如何理解两种工作方式:(快递员例子)水平触发Level Triggered 工作模式边缘触发Edge Triggered工作模式epoll使用场景epoll中的惊群问题(选学)ET模式使用思路用于创建一个文件描述符,返回一个非负整数表示新创建的实例的文件描述符。是一个建议值,表示最初能容纳多少个事件,但实际上内核可能会忽略此参数。用于向

2024-09-17 20:40:43 1019 6

原创 高级I/O知识分享【5种IO模型 || select || poll】

目录一,前文2,5种IO模型(钓鱼例子)3. 5种IO模型图4,进程同步&IO同步区分那如何区分同步通信和异步通信?5,阻塞与非阻塞区别二,非阻塞IO1.设置IO为非阻塞2. I/O多路转接(select)参数理解用select优化listen_socketselect的优缺点3.I/O多路转接(poll) 我们曾经学习过类似IO的知识,例如接口:C语言的fwrite,fread,操作系统的read,write等对磁盘的IO,我们现在可以称他为——单机IO,本质上是内存到磁盘之间的读写操作,相

2024-09-17 20:40:37 1224 6

原创 【C/C++】web服务器项目开发总结【请求 | 响应 | CGI | 高并发版本】

采用C/S模型,编写支持中小型应用的http,并结合mysql,理解常见互联网应用行为,做完该项目,你可以从技术上完全理解从你上网开始,到关闭浏览器的所有操作中的技术细节。

2024-09-04 16:12:55 1197 8

原创 数据链路层知识分享【计算机网络】【以太网帧 | MTU的影响 | ARP技术】

目录前文一, 以太网帧格式(1).理解局域网通信原理第一种:在同一网段中第二种:在不同网段中二,MTU对上层的影响mtu对IP协议的影响MTU对UDP协议的影响MTU对TCP协议的影响如何理解滑动窗口&MSS的联系,区别三,ARP技术四,其他重要协议或技术1.DNS——域名解析(了解)2.NAT技术(了解)NAPT策略NAT & 代理服务器 经历过网络层,我们开始向下继续探索。首先我们先了解一下什么是以太网(防止误导,这里使用AI回答)? 以太网是一种广泛使用(目前最广泛)的局域

2024-06-19 11:33:30 2134 14

原创 网络层 IP协议【计算机网络】【协议格式 || 分片 || 网段划分 || 子网掩码】

目录一,前提二,IP协议格式三,IP数据包分片 三,网段划分1.子网掩码网段的理解例子2. NAT技术私有IP与公有IPNAT工作原理示例私有ip访问外部网站(内部到外部)外部网站响应(外部到内部)3. 路由 在学习网络层之前,我们可以回顾一下上一层——传输层,这里以TCP协议为例,TCP业绩叫传输控制协议,需要保证报文传递的可靠性,将应用层下达的数据进行拆分,形成一个个TCP数据包,然后再向网络层进行交付,而在接收机器上传输层等待下层向上交付,中间的过程,传输层则不关心。 传输

2024-06-19 11:33:10 1613 10

原创 C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

两种方法连接mysql:1.C语言方式连接mysql;2. 图形化界面方式连接mysql,如phpadmin

2024-06-10 15:54:54 1715 10

原创 MySQL事务,视图,用户管理学习笔记【事务概念 | 事务隔离级别 | 设置级别 | 视图 | 用户管理】

目录一,事务初识二,支持事务的引擎三,事务的提交方式自动提交手动提交四,事务隔离级别读未提交读已提交可重复读穿行化查看并设置隔离级别设置隔离级别五,视图创建视图其他规则删除视图 在MySQL中,事务(Transaction)是一个非常重要的概念,它用于保证数据的一致性和完整性。事务可以看作是一组操作的集合,这些操作要么全部成功执行,要么全部不执行,是一个不可分割的工作单位。这四个特性通常被总结为ACID原则:1. 原子性(Atomicity):事务中的所有操作被视为一个整体,不可分割。事务的所

2024-06-10 15:54:46 804 5

原创 MySQL基础索引知识【索引创建删除 | MyISAM & InnoDB引擎原理认识】

MySQL基础索引知识【索引创建删除 | MyISAM & InnoDB引擎原理认识】

2024-05-31 21:20:30 1404 4

原创 MySQL复合查询操作【 函数接口集合 | 多表查询 | 子查询 | 表的内连&外连】

MySQL复合查询操作【 函数接口集合 | 多表查询 | 子查询 | 表的内连&外连】

2024-05-31 21:09:31 1123

原创 mysql表约束基础 【default | 主键 | 外键 | 唯一键】

目录一,表的约束 1. default && not null2. comment(软约束)3. zerofill4. 主键复合键5.自增长6、唯一键7.外键 表中将会有一些约束,换句话说就是限制,来规范输入的数据,使其能符合数据库的期望。约束本质上是通过技术手段,插入正确的数据,达到:数据库数据的完成性和可预期性。mysql常见的约束手段:很显然易见,首先我们需要认识到的是,not null 与 default 两者并不互斥,有时可以相辅相成,示例如下:曾经我们之所以可以在不设置defau

2024-05-23 14:23:00 1667 4

原创 表查询基础【mysql】【表内容 增,删,改,查询】

目录一,表内容的插入,删除,修改插入 插入是否更新替换式插入查询where结果排序(order by)结果分页(limit)修改update*删除 delete*truncate*向新表插入查询结果二,聚合统计函数group by & having结语 常见的插入我们已经熟练使用过了,如b连续插入表:由于 主键 或者 唯一键 对应的值已经存在而导致插入失败,因此对已存在的数据进行修改。检测此次特殊的插入操作结果:例如,下面就是有冲突数据,将已经存在的数据进行更新:检测插入结果:

2024-05-23 13:03:17 1020 8

原创 MySQL基础入门【mysql初识 | 数据库操作 | 表操作 | sql数据类型】

关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长!版本信息:centos7.6,mysql57。

2024-05-13 17:20:45 1425 14

原创 更深层次理解传输层两协议【UDP | TCP】【UDP 缓冲区 | TCP 8种策略 | 三次握手四次挥手】

目录再谈端口号 端口号的返回划分netstat(重要)pidof一,UDP协议UDP协议格式理解tcp/udp报文UDP的特点UDP的缓冲区怎么理解全双工,半双工呢?二,TCP协议(传输控制协议)协议格式tcp协议的实现向上,向下交付a. 序号与确认序号理解tcp协议的可靠性b. 16位窗口大小c. 6个标记位连接管理机制d. 紧急指针e. 策略1. 确认应答(ACK)机制2. 超时重传机制 3. 滑动窗口4. 流量控制5. 网络拥塞控制6. 延迟应答7. 捎带应答f. tcp机制小结g.面向字节流h.黏

2024-05-02 19:36:11 1631 12

原创 Https协议原理剖析【计算机网络】【三种加密方法 | CA证书 】

数字指纹(数据摘要),其基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改。•摘要常⻅算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率⾮常低)•摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息(无法反推原文),通常⽤来进⾏数据对⽐。

2024-04-25 15:42:20 1829 14

原创 Htpp协议基础认识【linux】【网络版计算器小项目 | 守护进程 | Http协议内容】

目录一, 再谈协议网络版计算器小项目2. 长数据分割优化二,守护进程1. setsid2. 制作守护进程函数三,json四,http协议1. URL2. 特殊字符的转义 3. HTTP协议格式 1)、ifstream——文件流ifstream是 C++ 标准库中用于从文件读取数据的输入流类。它继承自istream类,因此可以使用istream类提供的所有输入操作符和函数。以下是ifstream类的一些常用方法和操作:五,Http协议内容1. 请求方法2. HTTP状态码301永久重定向 & 302,307临

2024-04-25 15:41:55 1081 9

原创 网络编程套接字应用分享【Linux &C/C++ 】【UDP应用 | TCP应用 | TCP&线程池小项目】

目录前提知识1. 理解源ip,目的ip和Macip2. 端口号3. 初识TCP,UDP协议4. 网络字节序5. socket 编程sockaddr类型 一,基于udp协议编程 1. socket——创建套接字2. bind——将套接字强绑定 3. recvfrom——接受数据4. sendto——发出信息 遇到的问题(1. 云服务器中以及无法分配IP问题(2. IP:127.0.0.1更深层次的认识(3. 关于服务端bind的优化源码二,基于tcp协议编程1. listen——服务端监听2. accept—

2024-04-03 17:59:39 1670 15

原创 线程池小项目【Linux & C/C++】(踩坑分享)

目录前提知识:一,线程池意义二,实现流程阶段一,搭建基本框架1. 利用linux第三方库,将pthread_creat线程接口封装2. 实现基本主类ThreadPool基本结构 阶段二,完善多线程安全1. 日志信息打印——模拟企业级日常日志记录2. C/C++的格式化输出3. C,C++接口套用时,考虑this指针阶段三,优化为单例模式——懒汉四,源码C/C++线程接口使用,可参考多线程基础入门【Linux之旅】——上篇【线程控制 || 线程互斥 || 线程安全】-优快云博客互斥锁,信号量知识,可参考多线

2024-04-03 17:59:27 1451 6

原创 C++特殊类设计【特殊类 || 单例对象 || 饿汉模式 || 懒汉模式】

设计模式,我们学过的有适配器,迭代器,包装器,以及扩展:工厂,观察者模式。下面的单例模式也是。

2024-03-10 14:01:52 1059 8

原创 智能指针基础知识【C++】【RAII思想 || unique_ptr || shared_ptr&weak_ptr || 循环引用问题】

内存泄漏非常常见,解决方案分为两种:1、事前预防型,如。

2024-03-08 18:50:00 1287 10

原创 C++异常处理机制【自定义异常体系 || 异常规范 || 异常安全】

实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系这样大家抛出的都是继承的派生类对象,捕获一个基类就可以。// 服务器开发中通常使用的异常继承体系public:,_id(id){}protected:int _id;public:{}

2024-03-08 18:49:42 1478 12

原创 C++11常用知识(下)【可变参数模板 || lambda表达式 || 包装器】

目录一,可变参数模板1. 递归方法展开参数包2. 逗号表达式展开参数包3,可变参数模板优势二,lambda表达式1. lambda表达式语法2. 注意点三,包装器1. bind(了解)由于可变模版参数比较抽象,使用起来需要一定的技巧,所以这块还是比较晦涩的。现阶段呢,我们掌握一些基础的可变参数模板特性。上面的参数args前面有省略号,所以它就是一个可变模版参数,我们把带省略号的参数称为“参数包”,它里面包含了0到N(N>=0)个模版参数。我们无法直接获取参数包args中的每个参数的,只能通过展开参数包的方式

2024-03-04 20:41:16 1254 16

原创 C++11常用知识(上)【列表初始化 || 简化声明 || 范围for || 左右值 】

目录一. 列表初始化1)用法2) initializer_list小节: 二,简化声明1) ,auto2) ,decltype类3),nullptr三,范围for四,C++11后,STL容器变化五,左值与右值1. 左值2. 右值3,左值与右值之间的比较4. 右值引用使用场景(1,将死右值的移动语义操作 (2. 编译器传值返回优化(3,将亡值做参数(4. 完美转发 5,默认成员函数(1. 默认成员函数的强制生成(2. 默认成员函数的禁止调用生成首先,我们需要区分的是,什么是初始化列表与列表初始化。 前者是在类

2024-03-04 20:41:02 1072 8

原创 多线程基础入门【Linux之旅】——下篇【死锁 || 条件变量 || 生产消费者模型 || 信号量】

目录一,死锁1. 死锁的必要条件2,避免死锁二,条件变量 同步概念与竞态条件条件变量——初始化静态初始化 动态初始化pthread_cond_destroy (销毁)pthread_cond_wait (等待条件满足)pthread_cond_signal (唤醒线程)phread_cond_broadcast (广播线程) 条件变量使用规范那为什么使用条件变量??三,生产消费者模型四,POSIX信号量 1.理解信号量:2. 接口初始化信号量销毁信号量等待信号量(P操作——原子性)发布信号量(V操作——原

2024-01-04 16:11:31 1946 17

原创 多线程基础入门【Linux之旅】——上篇【线程控制 || 线程互斥 || 线程安全】

目录前文回望页表一,什么是线程二,使用pthread_create (线程创建)三,线程控制1 ,线程共享进程数据,但也拥有自己的一部分数据:2, 线程 VS 进程优点3,pthread_join(等待线程)4,pthread_exit (线程终止)5, pthread_cancel (线程取消)6. pthread_t 类型7. pthread_detach (线程分离)四,线程互斥1. 相关背景概念2. 互斥量1),初始化互斥量2),互斥量加锁与解锁3),销毁互斥量理解锁补充重入 & 线程安全概念3

2024-01-04 16:11:17 1212 18

原创 系统级基础信号知识【Linux】【信号产生,捕捉,原理】

操作系统中的信号是一种在进程间传递信息和通知的机制。它可以用来通知进程发生了某种事件,比如用户按下了某个键盘按键、进程收到了某个信号或者发生了某个错误等。手机收到新短信或来电时会发出提示音,这就是一种信号,通知用户有新的事件发生。交通信号灯会发出红、黄、绿三种不同的信号,指示车辆和行人何时可以通行。火灾报警器发出警报声,通知人们有火灾发生,需要立即疏散。门铃响起,通知主人有人来访。警报器在发现入侵者时会发出警报声,通知屋主有危险。可选的处理动作有以下三种1. 忽略此信号。

2023-12-14 19:36:32 2377 11

原创 进程通信知识基础【Linux】——下篇【命名管道,共享内存,信号量初识】

认识并使用1.命名管道 2.system V 共享内存 3. 信号量

2023-12-14 19:34:54 1211 7

原创 进程间通信基础知识【Linux】——上篇【进程通信,管道,进程池实现】

目录一,理解进程之间的通信1. 进程间通信目的2. 进程间通信的技术背景3,常见的进程间通信二,管道1. 尝试建立一个管道管道的特点:管道提供的访问控制:2. 扩展:进程池阶段一: 创建多个子进程阶段二:构建命令方法ProcessPool.cpptask.hpp下一期:进程通信基础知识结语首先,系统在设计时,秉持这相互独立的原则,因此要想实现进程之间的通信是比较困难的。而进程之间的通信本质上是:不同的进程能访问同一份数据。1)进程是具有独立性的,虚拟地址 + 页表 保证进程之间的独立性 (内核中数据结构 ,

2023-11-29 18:20:32 1629 9

原创 哈希思想应用【C++】(位图,布隆过滤器,海量数据处理面试题)

目录一,位图1. 位图概念2.实现3. 测试题位图的优缺点二,布隆过滤器1). 布隆过滤器提出2). 概念3). 布隆过滤器的查找4). 布隆过滤器删除(了解)5). 布隆过滤器优点6). 布隆过滤器缺陷三,海量数据面试题1)哈希切割我们首先由一道面试题来理解位图40亿无符号整形,我们知道1G大概是10亿个字节,也就是说起码 16G数据,排序,二分查找都需要在内存下进行,16G的内存性价比着实有些低。而我们使用位图的方法,用40亿个比特位来表示这40亿个数是否存在,大概就是要消耗 512MB(1G-> 10

2023-11-29 18:19:39 1296 24

原创 用哈希表封装unordered_map(以及unordered_set)【C++】

在学习封装unordered_map与unordered_set前,建议先学习如何封装map & set该篇文章用红黑树封装map&set【C++】-优快云博客这样更能理解其中的封装思想(两种封装方式,主题思路大体相似)同时用哈希表封装 unordered_map和undordered_set,在封装之前,我们首先是要学会哈希表基本的精华,哈希实现建议大家先学习从底层认识哈希表【C++】-优快云博客。

2023-11-16 16:10:18 373 20

原创 从底层认识哈希表【C++】

在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到$log_2N$,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。

2023-11-16 16:09:34 371 28

原创 红黑树插入实现【C++】面试重灾区!!

AVL树是一棵绝对平衡的二叉搜索树,其要求每个节点的左右子树高度差的绝对值都不超过1,这样可以保证查询时高效的时间复杂度,即$log_2 (N)$。但是如果要对AVL树做一些结构修改的操作,性能非常低下,比如:插入时要维护其绝对平衡,旋转的次数比较多,更差的是在删除时,有可能一直要让旋转持续到根的位置。因此:如果需要一种查询高效且有序的数据结构,而且数据的个数为静态的(即不会改变),可以考虑AVL树,但一个结构经常修改,就不太适合。

2023-11-02 21:46:59 335 31

原创 用红黑树封装map&set【C++】

根据STL源代码的提示,我们能初步形成框架class mappublic:class setpublic:T _data;color _col;// 颜色:_data(p),_col(RED) //与其修改黑色路径数量,不如违反红子孩子都为黑的原则来的轻松。{}....

2023-11-02 21:46:30 335 16

原创 map & set 使用快速上手【C++】

key: 键值对中key的类型T: 键值对中value的类型Compare: 比较器的类型,map中的元素是按照key来比较的,缺省情况下按照小于来比较,一般情况下(内置类型元素)该参数不需要传递,如果无法比较时(自定义类型),需要用户自己显式传递比较规则(一般情况下按照函数指针或者仿函数来传递)Alloc:通过空间配置器来申请底层空间,不需要用户传递,除非用户不想使用标准库提供的空间配置器。m1.insert(make_pair("string", "字符串"));

2023-10-23 19:26:06 171 14

原创 使用第三库操作详解【Linux】【软硬链接 | 动,静态库 | 使用第三库】

建议先学习【Linux】文件描述符基础知识——上篇-优快云博客。

2023-10-17 21:44:07 613 14

原创 谈谈linux文件描述符【文件描述符原理 | 重定向 | 缓冲区】

目录 前文一, 系统级——文件操作接口a. openb. closec. writed. read二,接口理解那文件描述符——fd是什么呢?三,文件描述符分配规则原理四,重定向——dup2简易shell——重定向五,回看缓冲区a, 缓冲区刷新策略 b, 缓冲区存在哪儿?? c, 尝试手搓一个——缓冲区关于C语言文件操作,请看本篇博客,详解文件操作&相关函数(超详细!)_文件操作函数_花果山~~程序猿的博客-优快云博客对C语言接口进行复习。在C语言中,fwrite, fgets, fprintf仅仅是C语

2023-10-17 21:44:01 354 24

空空如也

空空如也

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

TA关注的人

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