- 博客(131)
- 收藏
- 关注
原创 【git基本使用】
如果你的的平台是centos,安装git相当简单,以我的centos7.6为例:git出现像上⾯的结果,Linux会友好地告诉你Git没有安装。
2023-07-22 12:57:52
607
原创 【C++中map和unordered_map存储自定义类型需要做什么】
需要传入的参数是key-value键值对,和仿函数类型对于内置类型,int、double、char重载了operator
2023-05-31 19:14:14
1933
原创 【进程间通信之管道】
匿名管道智能用于具有血缘关系的两个进程进行通信,比如父子进程和兄弟进程。管道通信其实在内核开辟一段缓冲区,用来单向传输数据。命名管道可以用于非血缘关系的两个进程进行通信。Linux中 | 可以用来进程传输数据。缺点:建立一个管道不能用于双向通信。
2023-05-09 17:41:27
87
原创 【C++中可调用对象和function】
该函数包装器模板能包装任何类型的可调用实体,如普通函数,函数对象,lamda表达式等。个人认为五种可调用对象中,函数和函数指针本质相同,而lambda表达式、bind对象及仿函数则异曲同工。bind绑定类成员函数时,第一个参数表示对象的成员函数的指针,第二个参数表示对象的地址,这是因为对象的成员函数需要有this指针。预绑定的参数是以值传递的形式,不预绑定的参数要用std::placeholders(占位符)的形式占位,从_1开始,依次递增,是以引用传递的形式;function包装仿函数。
2023-05-08 11:34:03
285
原创 【MySQL中共享锁和独占锁的关系】
共享锁(S锁)满足读读共享,读写互斥。独占锁(X锁)满足写写互斥、读写互斥。阻塞的时间是多节呢?在innodb下是50秒。加共享锁读取是兼容的,读写互斥。读读互斥,读写互斥,写写互斥。
2023-04-23 13:53:29
189
原创 【MYSQL索引失效的场景有哪些】
创建一张表:id为主键(primary key)name为普通建(index)插入数据:用主键索引查询:用普通建索引查询type 字段就是描述了找到所需数据时使用的扫描方式是什么,常见扫描类型的。
2023-04-21 13:12:42
160
原创 【MySQL可重复读级别解决了幻读的问题吗】
可以看到事务A和事务B同时开启事务,事务A插入一条数据后提交,事务B查询看不到事务A提交的数据,但是此时事务B可以对插入的数据进行修改,修改之后再次查询就可以看到数据,就产生了幻读的问题。,因为它会对记录加 next-key lock,从而避免其他事务插入一条新记录。
2023-04-15 15:36:19
521
原创 【在成员函数中使用delete会有什么影响】
delete之后访问成员函数就是去访问已经被释放的空间的变量,此时应该会出现非法访问内存的问题,但是实际上并没有其实delete调用的是析构函数清理资源和operator delete 释放空间,operator delete是对free的封装,new的底层是调用的operator new开辟空间,构造函数初始化,operator new是对malloc的初始化,为了避免频繁的malloc和free,会造成内存碎片,所以free的时候不会释放空间,下一次在malloc的时候就会将这个空间进行分配。
2023-03-30 20:01:29
163
原创 【写C++代码时有一类错误是 coredump ,很常见,你遇到过吗?怎么调试这个错误?】
coredump是程序由于异常或者bug在运行时异常退出或者终止,在一定的条件下生成的一个叫做core的文件,这个core文件会记录程序在运行时的内存,寄存器状态,内存指针和函数堆栈信息等等。利用core文件可以用来帮助我们定位程序出错的位置,Linux默认core file size = 0未开启,需要手动设置,一般通过ulimit -c 设置一个固定大小,否则电脑上跑上很多个程序会占用磁盘。ulimit -c unlimited 是不限制core dump文件的大小现在的程序占用内存都比较凶猛,
2023-03-28 09:16:18
377
原创 【静态变量在什么时候进行初始化】
初始化只有一次,但是可以多次赋值,在主程序之前,编译器已经为其分配好了内存。静态局部变量和全局变量一样,数据都存放在全局区域(数据区),所以在主程序之前,编译器已经为其分配好了内存。
2023-03-26 20:02:44
3491
原创 【模拟三次握手第一次握手丢失会发生什么】
用telnet链接一个不存在的服务,第一次握手肯定会丢失,用tcpdump抓包看会发生什么。修改重传次数为3次,然后进行和上面相同的操作。第一次握手冲传次数收到内核参数影响。tcp建立连接到关闭链接图。
2023-03-22 16:59:04
139
原创 【HTML基础】
width/height: 控制宽度高度. 高度和宽度一般改一个就行, 另外一个会等比例缩放. 否则就会图片失衡., 开启开发者工具, 切换到 Elements 标签, 就可以看到页面结构细节.title 是 head 的子标签. head 是 title 的父标签.border: 边框, 参数是宽度的像素. 但是一般使用 CSS 来设定.alt: 替换文本. 当文本不能正确显示的时候, 会显示一个替换的文字.有六个, 从 h1 - h6. 数字越大, 则字体越小.
2022-11-14 17:15:49
1865
原创 【软件测试从0到1】第四篇:测试分类
安全性测试的方法有代码评审,渗透测试,安全运维等,常用的静态安全测试工具有,Coverity,IBMAppscan Source,HPFortify,常用的动态安全测试有OWASP的ZAP,HP WebInspect等。软件只是一种工具,软件与人的信息交流是通过界面来进行的,界面是软件与用户交流的最直接的一层,界面的设计决定了用户对我们设计的软件的第一印象;要进行软件产品的性能问题,要对产品的性能需求进行分析,然后基于系统的性能需求和系统架构,完成性能测试的设计和执行,最后要进行持续的性能调优。
2022-11-14 10:31:11
407
原创 【软件测试从0到1】第三篇:用例篇
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。因果图法是根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。
2022-11-12 10:35:41
3042
原创 【Python从0到1】第四篇:使用库
注意: 如果使用 pip 安装完第三方库之后, 在 PyCharm 中仍然提示找不到对应的模块, 则检查 Settings ->Project -> Python Interpreter , 看当前 Python 解释器设置的是否正确. (如果一个机器上安装了多个版本的 Python, 容易出现这种情况).虽然 excel 自身支持很强大的功能, 也可以求和, 求平均值. 但是如果是稍微复杂的需求, 操作起来可能就没那么方便了.当我们确定了该使用哪个第三方库之后, 就可以使用 pip 来安装第三方库了.
2022-11-10 14:20:51
972
原创 【软件测试从0到1】第二篇:测试概念(二)
bug的定义每个公司都不一致,在定义级别之前需要查看公司规范。阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。
2022-11-08 19:56:42
484
原创 【软件测试从0到1】第一篇:测试概念(一)
最常见的理解是:软件测试就是找BUG,发现缺陷。现实生活中在很多情况下我们都在默默进行测试:刚新买来一部手机,我们要干什么?一场考试, 做完一遍题目之后, 进行一遍检查, 就是在 "测试"买一台电视, 安装好之后打开试试看能不能正常使用, 也是在 "测试"软件测试就是验证软件产品特性是否满足用户的需求。早期,人们更多的将测试看成是对软件产品“检验”,检查软件的每个功能是否运行正常。
2022-11-06 19:26:36
601
原创 【Python从0到1】第三篇:基础语法(三)
表就是买散装辣条, 装好了袋子之后, 随时可以把袋子打开, 再往里多加辣条或者拿出去一些辣条.元组就是买包装辣条, 厂家生产好了辣条之后, 一包就是固定的这么多, 不能变动了。和 C++ / Java 不同, Python 是动态类型的编程语言, 函数的形参不必指定参数类型. 换句话说, 一个函数可以支持多种不同类型的参数。因此, 像读操作,比如访问下标, 切片, 遍历, in, index, + 等, 元组也是一样支持的.
2022-11-05 20:59:48
300
原创 【数据结构从0到1】第十一篇:B-树
B树:有序数组+平衡多叉树;B+树:有序数组链表+平衡多叉树;B*树:一棵更丰满的,空间利用率更高的B+树。mysql是目前非常流行的开源关系型数据库,不仅是免费的,可靠性高,速度也比较快,而且拥有灵活的插件式存储引擎,如下:MySQL中索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。注意:索引是基于表的,而不是基于数据库的。
2022-10-16 08:56:04
264
原创 【数据结构从0到1】第十篇:LRUCache
LRU是Least Recently Used的缩写,意思是最近最少使用,它是一种Cache替换算法。什么是Cache?狭义的Cache指的是位于CPU和主存间的快速RAM, 通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。广义上的Cache指的是位于速度相差较大的两种硬件之间, 用于协调两者数据传输速度差异的结构。
2022-10-13 10:07:32
137
原创 【Python从0到1】第二篇:基础语法(二)
条件语句能够表达 “如果 … 否则 …” 这样的语义. 这构成了计算机中基础的 逻辑判定.条件语句也叫做分支语句, 表示了接下来的逻辑可能有几种走向.
2022-10-12 16:54:59
956
2
原创 【Python从0到1】第一篇:基础语法(一)
原因是编程中, 一个程序里通常会同时创建出很多个变量. 如果只是使用单个字母表示, 在变量多了的时候, 就很难记住哪个变量是干啥的, 从而给维护程序带来了一定的困难. 因此我们更建议使用带有明确描述性的名字, 来表示变量的用途.衡量内存的一个重要指标就是内存空间的大小, 比如我的电脑内存是 16GB. 这个数字越大, 意味着内存的存储空间就越大, 能够存放的数据(变量) 就越多。注释是一种特殊的代码, 它不会影响到程序的执行, 但是能够起到解释说明的作用, 能够帮助程序猿理解程序代码的执行逻辑.
2022-10-08 15:20:36
2228
原创 【数据结构从0到1】第九篇:图
图是由顶点集合及顶点间的关系组成的一种数据结构:G = (V, E),其中:顶点集合V = {x|x属于某个数据对象集}是有穷非空集合;E = {(x,y)|x,y属于V}或者E = {|x,y属于V && Path(x, y)}是顶点间关系的有穷集合,也叫做边的集合。(x, y)表示x到y的一条双向通路,即(x, y)是无方向的;Path(x, y)表示从x到y的一条单向通路,即Path(x, y)是有方向的。顶点和边:图中结点称为顶点,第i个顶点记作vi。两个顶点vi和vj相关联称作顶点
2022-10-04 13:22:26
1015
原创 【Linux从0到1】第十七篇:高级IO
阻塞IO: 当用户发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪系统调用就会等待数据就绪,此时操作系统会将进程从运行队列拿到等待队列,当数据就绪时,操作系统又会将进程从等待队列拿到运行队列,进行数据读取, 所有的套接字, 默认都是阻塞方式.阻塞IO是最常见的IO模型。非阻塞IO: 当用户发出IO请求之后,内核会去查看数据是否就绪,如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK错误码.非阻塞IO往往需要程序员循环的方式反复尝试读写文件描述符, 这个过程称为
2022-10-01 08:57:48
653
原创 【数据结构从0到1】第八篇:并查集
编号为4和9的同学属于1号小分队,该小分队有3人(包含队长1),编号为3和5的同学属于2号小分队,该小分队有3个人(包含队长1)。同的学校,起先互不相识,每个学生都是一个独立的小团体,现给这些学生进行编号:{0, 1, 2, 3,4, 5, 6, 7, 8, 9};西安学生小分队s1={0,6,7,8},成都学生小分队s2={1,4,9},武汉学生小分队s3={2,3,5}就相互认识。比如:某公司今年校招全国总共招生10人,西安招4人,成都招3人,武汉招3人,10个人来自不。了,10个人形成了三个小团体。
2022-09-29 13:45:46
132
原创 【C++项目】负载均衡式OJ
所用技术:开发环境我们的项目核心是三个模块我们的项目宏观结构编写思路提供的服务:编译并运行代码,得到格式化的相关的结果Log功能4.2 第二个功能 runner :运行功能测试资源限制://适配用户请求, 定制通信协议字段//正确的调用compile and run//形成唯一文件名测试jsoncpp第三个功能 compile_run4.4 第四个功能: 把编译并运行功能,形成网络服务五、基于MVC 结构的oj 服务设计本质:建立一个小型网站M: Model,通常是和
2022-09-27 16:37:52
1369
1
原创 【Linux从0到1】第十六篇:IP&&MAC
数据链路层的作用: 两个设备(同一种数据链路节点)之间进行传递数据以太网是一种技术标准;既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;以太网帧格式理解mac地址理解arp协议理解MTU。
2022-09-17 09:36:16
286
原创 【MySQL从0到1】第十一篇:连接数据库
初始化mysql_init()要使用库,必须先进行初始化!如: MYSQL *mfp = mysql_init(NULL)链接数据库mysql_real_connect初始化完毕之后,必须先链接数据库,在进行后续操作。(mysql网络部分是基于TCP/IP的)第一个参数 MYSQL是 C api中一个非常重要的变量(mysql_init的返回值),里面内存非常丰富,有port,dbname,charset等连接基本参数。
2022-09-16 08:12:31
205
原创 【MySQL从0到1】第十篇:视图&&用户管理
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用MySQL的用户管理。MySQL中的用户,都存储在系统数据库mysql的user表中。create view 视图名 as select语句;化会影响到基表,基表的数据变化也会影响到视图。刚创建的用户没有任何权限。删除视图 drop view 视图名;修改了视图,对基表数据有影响。修改了基表,对视图有影响。
2022-09-15 09:51:47
101
原创 【MySQL从0到1】第九篇:事务
事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的。事务就是要做的或所做的事情,主要用于处理操作量大,复杂度高的数据。
2022-09-14 10:15:49
249
原创 【MySQL从0到1】第八篇:索引
索引:提高数据库的性能,索引是物美价廉的东西了。可是,貌似这样也有效率问题,在Page之间,也是需要 MySQL 遍历的,遍历意味着依旧需要进行大量的IO,将下一个Page加载到内存,进行线性检测。磁盘是计算机中的一个机械设备,相比于计算机其他电子元件,磁盘效率是比较低的,在加上IO本身的特征,可以知道,如何提交效率,是 MySQL 的一个重要话题。在单表数据不断被插入的情况下, MySQL 会在容量不足的时候,自动开辟新的Page来保存新的数据,然后通过指针的方式,将所有的Page组织起来。
2022-09-11 09:17:45
259
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人