自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

缥缈烟雨

编程

  • 博客(65)
  • 收藏
  • 关注

转载 Jmeter初学:组件Thread+Test Fragment

1.安装官方网站:http://jmeter.apache.org/下载安装包。解压后运行“bin/jmeter.bat”.Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language 来选择语言2.组件介绍2.1.测试计划测试计划(Test Plan)是使用JMeter进行测试的起点,是其它测试元件的容器。...

2019-07-10 10:06:22 224

转载 C++中的深浅拷贝

浅拷贝:又称值拷贝,将源对象 的值拷贝到目标拷贝对象中去,本质上来说源对象和目标拷贝对象共用一份实体,只是所引用的变量名不同,地址其实还是相同的。举个简单的例子:你的小名叫西西,大名叫沫沫,当别人叫你西西或者沫沫的时候你都会答应,这两个名字虽然不相同,但是都指的是你。假设有一个String类,String s1;String s2(s1);在进行拷贝构造的时候将对象s1里的值全部拷贝到对象s2...

2018-10-07 11:26:43 343

原创 (C++)在类外访问一个类中的私有成员变量

通过公共函数为私有成员赋值#include <iostream> using namespace std; class Test { private: int x, y; public: void setX(int a) { x=a; } ...

2018-10-04 16:02:38 7543

转载 程序、进程、线程的区别与联系

程序程序并不能单独执行,只有将程序加载到内存中,系统为他分配资源后才能够执行,这种执行的程序称之为进程, 也就是说进程是系统进行资源分配和调度的一个独立单位,每个进程都有自己单独的地址空间。 所以说程序与进程的区别在于,程序是指令的集合,是进程运行的静态描述文本, 而进程则是程序在系统上顺序执行时的动态活动。 进程但是进程存在着很多缺陷,主要集中在两点:(1).进程只能...

2018-09-23 17:15:40 524

原创 输入框的测试用例

针对普通输入框的测试用例1、 输入中英文空格,字符串中间空格,首尾空格,回车换行符2、 字符长度校验,输入是缓冲区溢出的超长字符,默认字符,空字符,特殊字符,尤其是系统保留字符3、 根据的页面使用的不同程序语言,输入不同的语言字符串,如HTML格式语言,JS函数格式4、 输入全角/半角的数字,大小写英文5、 输入特殊字符串如null, 空格,回车转义符6、 若是必填项只输入...

2018-09-23 16:53:51 6199

原创 POSIX和System V的比较/IPC函数汇总

当我们在linux系统中进行进程间通信时,会发现例如共享内存,信号量,消息队列等方式时,会发现有System v以及POXIS两种类型。因此,我们探究一下System v和POXIS到底代表着什么意义。 一.POSIX POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该...

2018-09-05 11:33:00 447

原创 基于HTTP的小型自主web服务器

本篇博客通过自己建立Http服务器并且结合MySql来实现Web通信,具体代码详见GitHub:https://github.com/qiong12345/http在此整理其运行显示界面1.首先建立数据库2.首先启动Http服务器3.在浏览器上输入网址(我是在本机进行测试,用的IP是127.0.0.1,Http协议的TCP连接默认端口号为80)此时页面显示如下:...

2018-08-29 22:02:17 360

转载 数组和链表的区别

数组的特点在内存中,数组是一块连续的区域。 拿上面的看电影来说,这几个人在电影院必须坐在一起。 数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。 比如看电影时,为了保证10个人能坐在一起,必须提前订好10个连续的位置。这样的好处就是能保证10个人可以在一起。但是这样的缺点是,如果来的人不够10个,那么剩下的位置就浪费了。如果临时有多来了个人,那么10个就不够用了,这时可...

2018-08-28 09:37:36 181

原创 类的this指针,构造函数、析构函数、拷贝构造函数(C++)

1.this指针(一)对象存储模型我们都知道一个类中即有成员变量,又有成员函数,那么对象模型的存储方式是怎样的呢? 我们可以先看一下C语言是如何做的?struct Person { char _name[20]; char _gender[3]; int _age; }; void SetPersonInfo(Perso...

2018-08-27 22:21:41 315

原创 C语言中的条件编译

1.常见的条件编译指令#if  常量表达式    //... #endif // 常量表达式由预处理器求值。 如: #define __DEBUG__ 1 #if __DEBUG__    //.. #endif2.多个分支的条件编译 #if 常量量表达式    //... #elif 常量量表达式    //... #else   //...#end...

2018-08-18 21:52:07 1925

原创 预处理详解以及宏(C)

1.预定义符号__FILE__:进行编译的源文件 __LINE__:文件当前的行 __DATE__:文件被编译的日期 __TIME__:文件被编译的时间 __STDC__:如果编译器遵循ANSIC,其值为1,否则未定义这些预定义符号都是c语言内置的eg:printf(“file:%s line:%d\n”, __FILE__, __LINE__);2. #define...

2018-08-18 21:27:06 894

原创 每日做题之剑指offer(八)

1.翻转单词序列时间限制:1秒 空间限制:32768K 热度指数:197013本题知识点: 字符串题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该...

2018-08-18 20:48:02 220

原创 每日做题之剑指offer(十)

1.删除链表中重复的结点时间限制:1秒 空间限制:32768K 热度指数:192077本题知识点: 链表题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5解题思路:以题目,给的例子来说明,当...

2018-08-18 13:51:33 172

原创 每日做题之剑指offer(七)

1.二叉树的深度 时间限制:1秒 空间限制:32768K 热度指数:98813题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路:如果树只有一个根节点,深度为1 如果树只有左子树,那么树的深度为左子树的深度加1 如果树只有右子树,那么树的深度为右子树的深度加1 如果左右子树都...

2018-08-16 21:40:28 161

原创 每日做题之剑指offer(六)

1.把数组排成最小的数时间限制:1秒 空间限制:32768K 热度指数:150958本题知识点: 数组题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路:我们应该找到一种排序规则,数组根据这个排序规则可以排成一个最小的数字 ...

2018-08-15 21:59:40 185

原创 每日做题之剑指offer(五)

1.二叉搜索树与双向链表时间限制:1秒 空间限制:32768K 热度指数:156582题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路:在二叉搜索树中,每个节点都有两个指向子结点的指针。在双向链表中,每个节点也有两个指针,分别指向前一个结点和后一个节点。 将二叉搜索树转换成排序双向链...

2018-08-14 22:05:43 183

原创 make_heap, pop_heap, push_heap, sort_heap(C++)

std::pop_heap是一个实现快排的库将front(即第一个最大元素)移动到end的前部,同时将剩下的元素重新构造成(堆排序)一个新的heap。时间复杂度是: (2*log(last - first))例如:#include <iostream>#include <vector>#include <algorithm> using...

2018-08-14 20:51:35 258

原创 每日做题之剑指offer(四)

1.包含min函数的栈时间限制:1秒 空间限制:32768K 热度指数:177188本题知识点: 栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。解题思路:如果我们只有一个栈,在栈里添加一个成员变量存放最小元素是不够的,为什么呢? 因为如果当前最小的元素被弹出栈顶了,那么如何获得下一个最小的元素呢?...

2018-08-12 21:41:01 151

原创 每日做题之剑指offer(三)

1.链表中倒数第K个结点时间限制:1秒 空间限制:32768K 热度指数:429726本题知识点:链表题目描述输入一个链表,输出该链表中倒数第k个结点解题思路: 为了提高效率,显然我们最好只遍历一次便能找到链表中的倒数第K个结点 可以定义两个指针,两个指针一开始都指向链表的头结点 让第一个指针先走K-1步,第二工个指针保持不动 当第一个指针走到K步时,第二个指...

2018-08-11 21:56:57 220

原创 每日做题之剑指offer(二)

1.跳台阶时间限制:1秒 空间限制:32768K 热度指数:274685题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)解题思路:我们先考虑简单的情况。如果只有1阶台阶,只有一种跳法。如果有两阶台阶,有两种跳法:(1)分两次跳,每次跳一跳;(2)一次跳两级 一般情况下,,我们可以把n阶台阶时的...

2018-08-11 16:17:37 137

原创 每日做题之剑指offer(一)

1.二维数组中的查找时间限制:1秒 空间限制:32768K 热度指数:796670本题知识点: 查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数解题思路:例如下面的这个数组,每行每列都是递增排序。如果在这个数组中查找数...

2018-08-09 20:31:46 149

原创 C语言中为什么不支持函数重载,C++支持

我们得先知道函数重载是什么?函数的重载: 在同一个作用域类,一组函数的函数名相同,参数列表不同(个数不同/类型不同),返回值可同可不同。1.那么问题来了,为什么C语言不支持重载,C++支持重载呢? 我们先来看看,编译的整个过程: .C语言中为什么不能支持函数重载?从上图可知编译器在编译.c文件时,只会给函数进行简单的重命名;具体的方法是给函数名之前加上”_”;所以加入两个函...

2018-07-30 10:33:26 1074

原创 浅谈C语言的volatile关键字

对于volatile关键字我们平时很少用到,但是有时候它就派上用场了,所以下面我们浅谈一下(如果你要搞嵌入式编程,抱歉此处小二的层次帮不了你,┭┮﹏┭┮)注:此处使用的是C++编译器没有volatile关键字来看一段代码:#include <stdio.h>int main(){ const int n = 10; int *p = (int*)&...

2018-07-29 17:44:33 8150

原创 C++中的前置++和后置++的效率问题

测试环境:VS20081. 仅对内置数据类型自加,两者效率一样#include <iostream>using namespace std;int main(){ int a=1,b=2; a++; ++b; return 0;}汇编代码如下: int a=1,b=2;00F4138E mov ...

2018-07-27 17:29:57 1581

原创 C语言中的extern关键字的使用

引用同一个文件中的变量看一段测试代码:#define _CRT_SECURE_NO_WARNING 1#include<stdio.h>int func();int main(){ func(); printf("%d\n", num); return 0;}int num = 4;int func(){ printf("%d\n...

2018-07-25 10:11:03 14657

原创 C语言中的register关键字

register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。一、皇帝身边的小太监----寄存器    不知道什么是寄存器?那见过太监没有?没有?其实我也没有。没...

2018-07-25 09:32:30 646

原创 Linux学习笔记之高级IO相关接口(select、poll、epoll服务器)

对于一个文件描述符,默认都是阻塞IO非阻塞IOfcntl函数原型#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd, ..../* arg */ );传入的cmd的值不同, 后⾯面追加的参数也不相同.fcntl函数有5种功能:复制一个现有的描述符(cmd=F_DUP...

2018-07-24 12:04:43 328

原创 Linux学习笔记之高级IO概念

1.五种IO模型阻塞IO:在内核将数据准备好之前,系统调用会一直等待,所有的套接字默认都是阻塞方式 非阻塞IO:如果内核未将数据准备好,系统调用会直接返回,并且返回错误(非阻塞IO需要程序员采用循环的方式反复尝试读写这个文件描述符,将这个过程称为轮询)这对于CPU来说是非常大的浪费,一般只有在特定的场景下才进行使用 信号驱动IO:内核如果将数据准备好之后,使用SIGIO信号通知应用程序...

2018-07-20 11:21:00 396

原创 网络编程之TCP编程

TCP服务器server.c的作用是接受client的请求,并与client进行简单的数据通信 2 #include <stdio.h> 3 #include <sys/socket.h> 4 #include <netinet/in.h> 5 #include <errno.h> 6 #include <unist...

2018-07-20 10:48:26 236

原创 网络编程套接字之UDP编程

1.UDP套接字编程过程图1 UDP客户端/服务器端sendto 与 recvfrom 函数这两个函数的功能类似于 write 和 read 函数,可用无连接的套接字编程。其定义如下:/* 函数功能:发送数据; * 返回值:若成功则返回已发送的字节数,若出错则返回-1; * 函数原型: */#include <sys/socket.h>#include <sys/typ...

2018-07-15 11:05:01 291

原创 网络编程套接字概念(前提)

IP地址,端口号,网络字节序socket api的基本用法实现一个简单的UDP客户端/服务器实现一个简单的TCP客户端/服务器(单链接版本,多进程版本,多线程版本)TCP服务器建立连接,发送数据,断开连接的原理(即三次握手,四次挥手)                                                  IP地址                             ...

2018-07-13 15:39:18 186

原创 协议与划分层次(五层模型)

                                                                                   协议                                                                                       1.概念:在计算机网络中要做到有条不紊的交换数据,我们就...

2018-07-11 11:25:56 6428

原创 (Linux学习之笔记)重定向

在Linux里面有三个标准流 :标准输入0,标准输出1,标准错误20,1,2对应的物理设备一般是 : 键盘、显示器、显示器

2018-07-10 20:59:53 3392

原创 C++动态内存管理( 深度解析·new-delete-new[]-delete[] )

 C中的动态内存方式     整体代码测试环境:VS 08  1.堆上申请内存空间                    (1)malloc申请 内存空间void* malloc(字节数) 说明:这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。   如果开辟成功,则返回一个指向开辟好空间的指针。   如果开辟失败,则返回一个NULL指针,因此mal...

2018-07-10 13:16:49 244

原创 多态(C++)

1.多态的概念   同一种东西在不同场景下的多种形态    比如举个例子:见人说人话,见鬼说鬼话2.动态多态的分类       1>静态多态  静态多态是编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型的转换),可推断出要调用哪个函数,如果有对应的函数就调用该函数,否则出现编译错误  2>动态多态    我们先来看一段代码:#define _CRT_SECURE_N...

2018-07-09 11:36:44 2045

原创 动态库和静态库

我们自己在Linux下生成动态库和静态库,并且链接使用它们先来编写简单的add.c add.h || sum.c sum.h  ||  mul.c mul.h || div.c div.hadd.h

2018-06-28 10:55:49 133

原创 信号量

1. 编写信号量代码,实现二元信号量对显示器进行保护2. 实现父子进程输出成对AA或BB3. 调研SEM_UNDO标志代表什么含义,用途是什么,如何做到回滚 信号量主要用于同步与互斥,所以我们需要先了解什么是同步与互斥                                        1.进程互斥1>进程互斥的概念    由于各进程要求共享资...

2018-06-27 21:59:20 215

原创 消息队列

1. 编写消息队列代码,实现双向通信2. 总结消息队列特征3. 练习消息队列控制指令,ipcs和ipcrm1.消息队列简述    消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法    这个被发送的数据块被认为都有一个类型,所以进行接收的进程收到的这个数据块可以有不同的类型    消息队列是进程间通信的一种方法,管道也是进程间通信的一种方法,所以消息队列和管道一样也有不足,就是每个消息...

2018-06-27 16:58:04 219

原创 管道

1.管道我们把从一个进程到另一个进程间的一个数据流称为一个"管道".其中管道又分为匿名管道和命名管道,两者之间的区别和联系又是什么呢?下面我们来看。1)匿名管道pipe函数:int pipe(int fd[2]);                参数说明: fd:文件描述符,其中fd[0]表示读端,fd[1]表示写端                返回值:成功返回为0,失败返回为错误代码比如我们可...

2018-06-26 20:16:58 166

原创 进程间关系和守护进程

1.进程组    在Linux下,每一个进程都有自己的一个进程ID,但是他还包含了一个进程组ID,它是属于一个进程组的。那么进程组是什么呢?     进程组是由一个或多个的进程组成的集合。每个进程组有一个唯一的进程组ID,也可以说是这个进程组的编号。那么既然是一个组,就要有一个组长进程,既然是组长进程,那么该进程组的组ID就等于组长进程的ID。    组长进程可以创建一个进程组,并且创建该组中的进...

2018-06-24 23:06:36 177

空空如也

空空如也

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

TA关注的人

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