自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ling_hun_pang_zi的博客

ling_hun_pang_zi的博客

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

原创 软件测试基础-概念篇——慕课网

慕课网——软件测试基础-概念篇测试用例测试用例 = 输入+输出+测试环境输入:包括测试数据和操作步骤输出:指的是期望结果测试环境:指的就是系统环境配置4W :Why、When、Who、WhatWhy(我们为什么要写测试用例)便与团队交流便于重复测试便于跟踪统计便于用户自测When(什么时候写测试用例)通常会在测试阶段来写用例,即《需求规格说明书》和《测试计划》都已完...

2020-01-30 11:32:05 1135 1

原创 Java基础API

Java基础API目录:Scanner类匿名对象Random类ArrayList集合String类static静态Arrays工具类Math类1.Scanner类使用步骤:1、导包:importjava.util.Scanner;2、创建(System.in代表从键盘输入)Scanner sc = new Scanner(System.in);3、使用in...

2019-12-26 11:03:57 428

原创 磁盘的驱动调度算法

磁盘的驱动调度算法磁盘是可供多个进程共享的设备,由于磁盘是串行I/O,当有多个进程要求访问磁盘时,应采用一种调度算法,以使各进程对磁盘的平均访问时间尽可能的少。磁盘调度的目标:是磁盘的平均寻道时间最少常用的调度算法有:先来先服务FCFS:根据进程请求访问磁盘的先后次序进行调度最短寻道时间优先SSTF:要求访问的磁道与当前磁头位置距离最近最短寻道时间优先SSTF:要求访问的磁道与当前...

2018-10-04 17:01:20 4251

原创 页面置换算法

页面置换算法1、先进先出置换(FIFO)算法(队列)选择最先进入内存的页换出。即选择在内存中驻留时间最久的页面予以淘汰。2、最近最久未使用(LRU)算法(栈)选择离当前时间最久未使用的页面淘汰例:在一个请求分页系统中,假如一个作业的页面走向为1 2 3 4 1 2 5 1 2 3 4 5,计算当分配给该作业的物理块数分别为3和4时,使用FIFO和LRU页面置换算法的缺页次数和缺页率...

2018-10-04 16:28:37 591

原创 剑指——4.替换空格

4.替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str, int length) { if (str == NULL || lengt...

2018-10-03 16:38:32 153

原创 字符串翻转

字符串翻转给定一个字符串,要求将字符串前面的若干字符移到字符串的尾部。例如,将字符串“abcdef”的前3个字符’a’、'b’和’c’移到字符串的尾部,那么原字符串将变成“defabc”。请写一个函数实现此功能。//解法一:蛮力移位//时间复杂度为O(mn),空间复杂度O(1)void LeftShiftOne(char* s, int n){ char t = s[0];//...

2018-10-02 16:35:57 2786

原创 HTTP

HTTPHTTP协议用于客户端和服务端之间的通信。它几乎是每个人上网都会用的第一个协议。举个例子:我们要访问百度的首页我们先登录 http://www.baidu.com/, http://www.baidu.com/是一个URL,叫做统一资源定位符。接着HTTP的处理就会开始,首先是客户端向服务器建立一个TCP连接,然后在这个TCP连接上进行请求和应答以及数据报文的发送。我们知道...

2018-09-08 21:27:10 274

原创 ARP —— 地址解析协议

ARP —— 地址解析协议参考资料《图解TCP/IP》ARP协议能实现任意网络层地址到任意物理地址的转换。以目标IP为线索,用来定位下一个应该接收数据分包的网络设备所对应的MAC地址。ARP请求/应答报文的格式: 硬件类型字段定义物理地址的类型,它的值为1表示MAC地址。协议类型字段表示要映射的协议地址类型,它的值为0x800,表示IP地址。硬件地址长度和协议地址长度字段...

2018-09-05 16:27:04 458

原创 IP —— 网际协议

IP —— 网际协议参考资料《图解TCP/IP》目录: IP头部格式 IP地址 公网IP地址和私有IP地址 IP路由 IP的分片与重组IP是TCP/IP协议族中最为核心的协议,所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。它为上层协议提供无状态、无连接、不可靠的服务。 主要作用就是在复杂的网络环境中将数据包发给最终的目标地址。实现“点对点的通信”。...

2018-09-03 19:56:21 885

原创 TCP —— 传输控制协议

TCP —— 传输控制协议资料:《图解TCP/IP》目录TCP头部结构序列号与确认应答(ACK)机制超时重传机制面向连接滑动窗口流量控制拥塞控制延迟应答捎带应答使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP头部结构16位源端口号和目的端口号:告知主机该报...

2018-09-01 18:30:12 586

原创 TCP三次握手、四次挥手

TCP三次握手、四次挥手TCP三次握手TCP的连接建立,我们常常称为三次握手。 A:您好,我是A B:您好A, 我是B A:您好B我们也称之为“请求->应答->应答之应答” 1、一开始,客户端和服务器都处于CLOSED状态。2、先是服务端主动监听某个端口,处于LISTEN状态。3、然后客户端主动发起连接SYN,之后处于SYN-S

2018-08-31 23:01:17 170

原创 TCP/UDP套接字

TCP/UDP套接字socket套接字相当于网络通信两端的插座,只要对方的socket和自己的socket有通信连接,双方就可以发送和接收数据。 网络字节序我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分,磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分。网络数据流同样有大端小端之分,那么如何定义网络数据流的地址呢?发送主机通常将发送缓冲区中的数据...

2018-08-29 16:28:26 2618

原创 信号

信号目录1、产生信号2、信号的种类3、阻塞信号4、捕捉信号查看系统到底有哪些信号: kill -l 每个信号都有一个编号和一个宏定义名称,这些宏定义可以在 signal.h 中找到。 1)SIGHUP 关闭终端 2)SIGINT Ctrl + C 3)SIGQUIT Ctrl + \ 5)SIGTRAP 从用户空间陷入内核 6)SIG...

2018-08-28 17:09:19 283

原创 静态库和动态库

静态库和动态库静态库(.a):程序在编译连接的时候把库的代码链接到可执行文件中。程序在运行的时候将不再需要静态库。动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。测试程序: 静态库静态库:对一些 .o文件打包//生成方法:ar -cr lib库名.a 文件库文件名都是以lib开头的,静态库以.a作为后缀。//使用:gcc...

2018-08-27 18:15:28 164

原创 gcc、gdb的简单使用

gcc、gdb的简单使用目录:编译器 - gcc调试器 - gdb1.编译器 - gcc(1)预处理 -> *.i -E 预处理 -o 指定输出文件名 1)干掉注释 2)宏替换 3)#pragma 不替换 4)加入了很多行号信息,用于报错和警告使用file 查看文件类型 (2)编译 -> *.s 把预处理后C的代码...

2018-08-27 15:46:13 2082

原创 线程

线程目录:线程控制创建线程终止线程线程等待和分离线程间同步Mutex(互斥锁)条件变量POSIX信号量读写锁由于同一进程的多个线程之间共享同一地址空间,因此它的代码段和数据段都是共享的。除此之外,各线程还共享进程资源和环境。文件描述符表每种信号的处理方式(SID_IGN、SIG_DFL或者自定义的信号处理函数)当前工作目录用户id和组id但有些...

2018-08-26 16:18:29 327

原创 进程间通信 —— IPC

进程间通信 —— IPC目录:1.管道2.消息队列3.共享内存4.信号量为什么要有进程间通信?每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程 1 把数据从用户空间拷到内核缓冲区,进程 2 再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。进程间通信的目的:...

2018-08-24 18:40:22 384

原创 进程

进程目录1.进程概念2.进程状态3.进程创建4.进程终止5.进程等待6.进程程序替换7.进程优先级8.环境变量 1.进程概念程序:为了完成特定任务的一系列指令的有序集合 进程:程序的一次动态执行过程每个进程都有自己的状态每个进程都有自己的虚拟地址空间进程是操作系统分配资源的基本单位进程控制块(PCB):进程标识符pid、程序状态字、寄存器信息...

2018-08-22 14:58:48 219

原创 模拟实现C库函数

模拟实现strlen模拟实现strcpy模拟实现strncpy模拟实现strcmp模拟实现strcat模拟实现strstr模拟实现memcpy模拟实现memmove

2018-08-21 10:46:28 261

原创 UnionSet —— 并查集

UnionSet —— 并查集什么是并查集?并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。并查集的主要操作: 1、初始化:把每个点所在集合初始化为其自身; 2、查找:查找元素所在的集合即根节点;...

2018-08-20 10:54:25 421

原创 BTree —— 多路查找树

BTree —— 多路查找树2-3树 多路查找树中的每一个结点都具有两个或者三个孩子我们称之为2-3树。2-3树的所有叶子都在同一层次。插入原理对于2-3树的插入来说,与二叉排序树相同,插入操作一定是发生在叶子结点上。但与二叉树不同的是,2-3树插入一个元素的过程有可能会对该树的其余结点产生连锁反应。以这个图为例: 插入分为三种情况:(根据上图来插入) 第一种:对于...

2018-08-18 17:11:39 658

原创 C/C++动态内存管理

C/C++动态内存管理内存分配的方式有3种:1、从静态存储区域分配 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如:全局变量、static变量。 2、在栈上分配 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。效率很高,但是分配的内存容量有限,可能出现栈溢出。 3、从堆上分配(动态内存分配) 程序在运行时候...

2018-08-16 18:13:17 325 2

原创 指针

指针变量的地址 内存是以字节为单位进行编址的,内存中的每个字节都对应一个地址,通过地址才能找到每个字节。 变量对应内存中的一个存储单元,该存储单元占用一定的字节数,用这存储单元的第一个字节的地址表示该变量的地址。什么是指针? 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑...

2018-08-15 15:31:41 175

原创 剑指——59.对称的二叉树

59.对称的二叉树题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(...

2018-08-14 12:46:54 128

原创 LeetCode —— 20. 有效的括号

20. 有效的括号给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"...

2018-08-13 19:58:48 194

原创 剑指——58.二叉树的下一个结点

58.二叉树的下一个结点题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struc...

2018-08-13 19:49:21 133

原创 剑指——24.二叉树的后序遍历序列

24.二叉树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if (sequence.e...

2018-08-13 19:47:08 112

原创 数组的解析

数组的解析一维数组数组是一组相同类型元素的集合。//数组创建int arr1[10];char arr2[20];float arr3[10];double arr4[10];//数组初始化int arr1[10] = { 1, 2, 3, 4, 5, 6 };int arr2[] = { 1, 2, 3 };char arr3[3] = { 'a', 'b', '...

2018-08-09 17:18:25 1069

原创 可变参数列表解析

可变参数列表解析我们先来看一下我们熟悉的printf()函数。int main(){ printf("hello\n"); printf("%s%c\n", "worl", 'd'); printf("%s%s%s%s\n","he", "llo ", "wor", "ld"); return 0

2018-08-09 09:06:31 135

原创 函数栈帧

函数栈帧我们知道计算机的内存实际上是下面这个样子的 我们也知道在每一次函数调用,都要为本次函数调用栈空间上开辟空间。那么我们就通过这段简单的C代码来探讨一下一个函数的调用过程。#include <stdio.h>int Add(int x, int y){ int ret = 0; ret = x + y; return ret;}...

2018-08-08 13:25:22 124

原创 链表面试题

链表面试题基础 1.比较顺序表和链表的优缺点,说说它们分别在什么场景下使用? 1.从尾到头打印单链表 2.删除一个无头单链表的非尾节点 3.在无头单链表的一个节点前插入一个节点 4.单链表实现约瑟夫环 5.逆置/反转单链表 6.两两交换链表中的结点 7.单链表排序(冒泡排序&快速排序) 8.合并两个有序链表,合并后依然有序 9.查找单链表的中间节点,...

2018-08-05 16:59:19 640

原创 C++多态对象模型

单继承&多继承前面介绍的是单继承,即一个类是从一个父类派生而来的。但实际上,常常有这样的情况,一个子类有两个或多个父类,子类从两个或多个父类中继承所需的属性。单继承:一个子类只有一个直接父类。多继承:一个子类有两个或两个以上的父类。 探索虚函数表每一个具有虚函数的类都叫做多态类。这个虚函数或者是从基类继承来的,或者是自己新增加的。C++编译器必须为每一个多态类至少创...

2018-07-30 00:22:37 241

原创 多态与虚函数

多态与虚函数在引入虚函数概念之前,我们先看这个例子class Person{public: void BuyTickets() { cout << "person: 买票-全价" << endl; }protected: string _name; // 姓名

2018-07-27 16:36:48 182

原创 继承

继承简单的继承关系: 基类成员在派生类中的访问属性: 继承方式 基类的public成员 基类的protected成员 public继承 仍为public成员 不可见 protected继承 变为protected成员 不可见 private继承 变为private成员 不可见总结:1.基类中的公有成员。...

2018-07-27 11:08:18 140

原创 LeetCode——24. 两两交换链表中的节点

24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3. 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。  //Definition for singly-l...

2018-07-16 21:47:07 216

原创 LeetCode——454. 四数相加 II

454. 四数相加 II给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入:A =...

2018-07-14 15:47:14 1434

原创 String —— 写时拷贝技术(Copy-On-Write)

String —— 写时拷贝技术(Copy-On-Write)1.往磁盘里写东西时,其实是先写到内存,只有当我们关闭文件或刷新时,才会真正写到磁盘。2.把某个对象的值赋值给另一个变量时,这个变量默认指向与原来对象相同的空间,只有真正修改其当中的内容时,才会对其分配空间。int main(){ string s1("hello"); string s2 = s1; prin...

2018-07-08 17:22:37 459

原创 String —— 深浅拷贝

String  —— 深浅拷贝        浅拷贝就是由默认的拷贝构造函数和赋值运算符重载所实现的数据成员逐一赋值。通常默认的函数是能够胜任此工作的,但若类中含有指针类型的数据,这种按数据成员逐一赋值的方法将会产生错误。为了解决浅拷贝出现的错误,必须显示地定义一个自己的拷贝构造函数,使其不但复制数据成员,而且为对象分配各自的内存空间,这就是所谓的深拷贝。 1、原有的内存没有释...

2018-07-07 22:06:04 148

原创 LeetCode——350. 两个数组的交集 II

350. 两个数组的交集 II给定两个数组,写一个方法来计算它们的交集。例如:给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:   输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。   我们可以不考虑输出结果的顺序。class Solution {public: vector<int> ...

2018-07-05 10:46:34 497

原创 LeetCode——349. 两个数组的交集

349. 两个数组的交集给定两个数组,写一个函数来计算它们的交集。例子: 给定 num1= [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].提示:每个在结果中的元素必定是唯一的。我们可以不考虑输出结果的顺序。返回交集中的元素,我们就可以想到用set,可以天然的去重。class Solution {public: vector<int> i...

2018-07-05 10:39:41 236

空空如也

空空如也

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

TA关注的人

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