- 博客(50)
- 收藏
- 关注
原创 何为软件测试
什么是软件测试?找BUG,验证开发出来的软件是否符合用户和产品需求。什么是BUG?当且仅当规格说明书(软件需求说明书)存在并且正确,程序和规格说明书之间不符合,称之为软件错误,即BUG;当用户的需求存在并且合理,程序没有满足用户的需求,称之为BUG。BUG的生命周期:new:新建—> open:确认—> fixed:已解决—> reopen:重新打开—> closed:关闭—> reject:拒绝/丢弃—> delay:延期BUG的级别崩溃: 系统无
2022-03-19 18:01:23
880
原创 TestNG学习——硬断言(HardAssert)&软断言(SoftAssert)
断言比较HardAssert和SoftAssert接口测试常见流程:发送接口请求断言接口响应状态是否为200 OK断言接口的响应时间低于某一个值(依据情况而定,不是必选)断言响应数据是否正确,一般方法是判断某一个值是否相等或者包含关系其中,第四步判断结果的断言最难,因为接口请求回来之后会有很多数据返回,一般都是json数据,有的是对其中几个json字符串进行断言比较,有些可以通过两个json文件进行对比,一个是直接从数据库请求的json数据文件,一个是接口请求得到的json文件。在Tes
2021-07-11 16:17:25
898
1
原创 TestNG学习——注解简介
testNG注解简介@Before和@AfterBefore分类有@BeforeSuite,@BeforeTest,@BeforeGroups,@BeforeClass,@BeforeMethod。@BeforeClass:启动测试前的一些准备工作,测试进行的前提条件。After分类有@AfterSuite,@AfterTest,@AfterGroups,@AfterClass,@AfterMethod。@AfterClass:测试运行结束后的步骤,一般为将环境恢复到测试开始之前的状态。@D
2021-07-09 18:05:43
487
2
原创 Java的四大内部类
文章目录成员内部类内部类与外部类的区别局部内部类静态内部类匿名内部类(重点)匿名对象在Java中,允许在一个类的内部定义类,这种定义在类内部的类称作内部类,这个内部类所在的类称作外部类。一共有四种内部类,分别是成员内部类、局部内部类、静态内部类、匿名内部类。成员内部类定义: 在一个类中除了可以定义成员变量、成员方法之外,还可以定义类,这样的类被称作成员内部类。说明: 在成员内部类中,可以访问外部类的所有成员,包括成员变量和成员方法;在外部类中,通过创建内部类对象,可以访问成员内部类的变量和方法。
2020-08-07 22:10:36
307
原创 数据库(MySQL)基础知识
文章目录一、什么是数据库二、为什么要使用数据库三、什么是SQL四、数据库常用数据类型1、数值类型2、字符串类型3、日期类型五、MySQL语句分类1、数据定义语言DDL(Data Definition Language)2、数据查询语言DQL(Data Query Language)3、数据操纵语言 DML(Data Manipulation Language)4、数据控制语言DCL(Data Control Language)一、什么是数据库数据库的英文:DataBase;简称:DB什么是数据库?
2020-08-03 21:03:00
448
原创 浅谈网络原理
文章目录一、网络分层结构以及各层协议1.应用层2.传输层3.网络层4.数据链路层5.物理层二、重要的网络传输协议1.HTTPHTTP的基本介绍HTTP的特点认识URLURI和URL的区别HTTP协议2.UDP3.TCP4.IP5.ARP三、网络通信中的基本概念一、网络分层结构以及各层协议网络有三种分层结构,分别是OSI七层模型、TCP/IP五层协议模型和四层模型。其中最重要的是五层协议模型,分别有应用层、传输层、网络层、数据链路层和物理层。1.应用层应用层的任务是通过应用进程建的交互来完成特定的网络
2020-08-02 20:46:15
1276
原创 操作系统的初步认识
概念操作系统(Operating System,简称OS)是管理计算机软硬件资源的一款软件,以尽量合理有效的方法组织多个用户共享多种资源。在整个计算机软硬件资源架构中,它被定位为一款纯正的“搞管理”的软件。设计操作系统的目的:与硬件交互,管理所有的软硬件资源;为用户程序(应用程序)提供一个良好的执行环境,计算机上所有的软硬件资源都要在操作系统的基础上才能使用。操作系统的功能进程管理:又称处理器管理,其主要任务是对处理器的时间进行合理分配、对处理器的运行实施有效的管理。存储器管理:由于多道
2020-06-12 23:38:31
527
原创 Set结构的使用与实现
SetSet是继承自Collection的一个接口类;Set中只存储了key,并且要求key一定要唯一;Set的底层是使用Map来实现的,其使用key与Object的一个默认对象作为键值对插入到Map中的;因为Set里面的key是不能够重复的,所以Set最大的功能就是对集合中的元素进行去重;实现Set接口的常用类有TreeSet和HashSet,还有一个LinkedHashSet,LinkedHashSet是在HashSet的基础上维护了一个双向链表,用这个链表来记录元素的插入次序;Set中的
2020-06-10 23:03:41
1488
原创 Map的使用与实现
基本概念和使用场景Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有:直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢二分查找,时间复杂度为,但搜索前必须要求序列是有序的上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了,而现实中的查找可能会在查找时进行一些插入和删除的操作,即动态查找,那上述两种方式就不太适合了,这时就需要使用Map和Set这两种适合动态查找的集合容器。所以map和set是两种用来搜索
2020-06-09 23:41:47
1142
原创 非基于比较的排序
计数排序**基本思想:**对于每一个待排序元素,如果知道了待排序数组中有多少个比它小的元素,那么就可以直接得出排序后该元素应该在什么位置上。代码示例: public static void countSort(int[] array){ //1、统计元素的范围 int minValue = array[0]; int maxValue = array[0]; for(int i = 1 ;i<array.length-1;
2020-06-08 23:10:51
249
原创 倒立的树—归并排序
快速排序的非递归实现import java.util.Stack;public class Main { public static void main(String[] args) { int[] array = {0,0,9,7,8,9,5,6,4,3,6,3,5,1,8,4}; quickSort(array); print(array); } private static void print(int[] array){
2020-05-22 22:26:10
386
原创 交换排序—冒泡排序、快速排序
冒泡排序原理:在无序区间内,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序。图示:实现:public static void bubbleSort(int[] array) { for (int i = 0; i < array.length - 1; i++) { boolean isSorted = true; for (int j = 0; j < array.length - i - 1; j++) { // 相等不交换,保证稳
2020-05-20 12:00:49
231
原创 选择排序
选择排序直接选择排序原理:遍历整个序列,找到最小的或最大的一个元素,存放在该序列的最前或最后,然后在遍历余下未排序的序列,重复上述步骤,直至所有待排序的元素全部排完。图示:实现: private static void selectSort(int[] array){ //选择排序 for(int i = 0;i < array.length-1;i++){ int maxPos = 0; for(int j
2020-05-12 22:43:43
262
原创 对象的比较
值相等的比较==操作:p==q表示p和q两个引用指向同一个对象。equals方法:p.equals(q)表示p只想的对象和q指向的对象是否是值相等的。对于自定义的对象,如果想要比较两个对象是否相等,需要重写equals方法。示例//自定义一个类Card,数据成员有牌面值和花色public class Card { public int rank; // 数值 public St...
2020-05-08 22:05:25
206
原创 堆的删除与插入
堆的删除每次删除的一定都是堆顶的元素具体步骤如下:将堆顶的元素与堆中的最后一个元素交换;将对中的有效元素减一 //每次删除的是堆顶的元素 int poll(){ int ret = array[0]; swap(0,size-1); size--; shiftDown(0); return ret...
2020-05-08 10:27:57
404
原创 堆的实现方式
堆PriorityQueue底层用了堆的数据结构,而堆是基于二叉树对元素进行一定的调整所形成的的一种结构。堆的概念如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 ; i = 0,1,2…,则称为小堆,将根节点最小的堆叫做最小堆或小根堆。反之...
2020-05-06 22:14:06
928
原创 数据结构之优先级队列
优先级队列概念队列是一种先进先出(FIFO)的数据结构。但在有些情况下,我们进行操作的数据可能带有优先级,在出队列时可能需要优先级高的先出队列。因此,把具有返回优先级最高的对象和添加新对象操作的数据结构称为优先级队列(PriorityQueue)。基本特性使用时必须导入PriorityQueue所在的包:import java.util.PriorityQueue;Prior...
2020-05-06 15:08:34
1290
原创 二叉树的遍历
二叉树的遍历所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。前中后序NLR:前序遍历(先序遍历)——访问根结点—>根的左子树—>根的右子树。LNR:中序遍历——根的左子树—>根节点—>根的右子树。LRN:后序遍历——根的左子树—>根的右子树—>根节点。由于被访问的结点必是某子树的根,所以N(Node)...
2020-05-05 21:59:44
810
1
原创 二叉树之初识篇
一棵二叉树是节点的一个有限集合,该集合或是为空,或是有一个根节点加上两棵称为左子树和右子树的二叉树组成。二叉树的特点每个节点最多有两棵子树,即二叉树不存在度大于2的节点;二叉树的子树有左右之分,其子树的次序不能颠倒。二叉树的基本形态:一般二叉树都是由上述基本形态结合形成的。两种特殊的二叉树满二叉树: 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就...
2020-04-28 22:22:09
225
原创 树
树概念树:树是一种非线性的数据结构,它是由n(n>=0)个有限节点构成一个有层次关系的集合。节点的度: 一个节点含有的字数的个数成为该节点的度;树的度: 一棵树中,最大的节点的度称为树的度;叶子节点: 度为0的节点称为叶节点;双亲节点: 若一个节点有子节点,则这个节点成为其子节点的双亲节点;孩子节点: 一个节点含有的子树的根节点称为该节点的孩子节点;根节点: 一棵树中,没有...
2020-04-23 22:30:03
135
原创 栈和队列
栈栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。简单实现:利用顺序表实现栈,使用尾插+尾删的方式(栈的特性先进后出)public clas...
2020-04-20 20:54:49
195
原创 数据结构之List
List(线性表)常用方法:boolean add(E e)----->尾插evoid add(int index,E element)------>将e插入到index位置E remove(int index)------->删除index位置的元素boolean remove(Object o)------->删除遇到的第一个oE get(int inde...
2020-04-19 22:55:04
340
原创 JAVA之泛型
泛型泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型的分类:泛型类泛型方法基本数据类型对应的包装类:int---->Integerchar—>Characterlong—>Longbyte—>Byteshort—>Shortfloat—>Floatdouble—>Doubleboolean—>Bool...
2020-04-18 21:53:52
232
原创 JAVA集合框架及涉及的数据结构
JAVA集合框架java集合框架(Java collection Framework),又被称为容器(container),是定义在java.util包下的一组接口(interface)和其实现类(classes)。其主要表现为将多个元素element置于一个单元中,用于对这些元素进行快速、便捷的存储store、检索retrieve、管理manipulate,即平时我们俗称的增删查改CRU...
2020-04-17 23:21:35
450
原创 面向对象编程
面向对象编程语言的三大特性:继承、封装、多态封装代码中的两种角色:类的实现者和类的调用者封装:本质就是让类的调用者不必过多的了解类的实现者是如何实现的,只要知道如何使用类就行了。封装大大降低了程序的复杂程度。private实现封装private/public两个关键字表示“访问权限控制”。被public修饰的成员变量或者成员方法,可以直接被类的调用者使用;被private修饰的成员...
2020-04-13 22:08:35
106
原创 顺序表和链表
线性表线性表是N个具有相同特性的数据元素的有限序列。常见的线性表有:顺序表、链表、栈、队列、字符串······线性表在逻辑上是线性结构,也就是说是连续的一条直线,但在物理结构上不一定是连续的。线性表在物理上存储时,通常以数组和连式结构的形式存储。顺序表概念及结构顺序表是用一段物理地址厉旭的存储单元一次存储数据元素的线性结构,一般情况下采用数组存储。顺序表可分为:静态顺序表:使用定...
2020-03-07 21:15:10
902
原创 时间复杂度和空间复杂度
算法效率(以时间换取空间;以空间换取时间)算法效率分为两种:时间效率和空间效率。时间效率称为时间复杂度,主要是用来衡量一个算法的运行速度;空间效率称为空间复杂度,是用来衡量一个算法所需要的额外的空间。时间复杂度算法中基本操作放的执行次数,为算法的时间复杂度时间复杂度的计算使用是使用大O的渐进表示法,其中大O符号是用于描述函数渐进行为的数学符号。 大O的渐进表示法:找到幂数最高的,只保留...
2020-03-06 15:42:34
161
原创 Java中的数组
数组定义与使用创建数组基本语法:数据类型[ ] 数组名称 = new 数据类型 [ ] {初始化数据};//动态初始化数据类型[ ] 数组名称 = {初始化数据};//静态初始化数据类型[ ] 数组名称 = new 数据类型[长度];代码示例:int[ ] arr = new int[3]{1,2,3};int[ ] arr = {1,2,3};New:产生一个对象...
2019-11-20 21:13:52
107
原创 抽象类与接口
抽象类:abstract:抽象方法、抽象类的关键字abstract class shape{ //抽象类 Public abstract void draw(){ //抽象方法 }}包含抽象方法的类叫做抽象类;抽象类不能被实例化 ,即不能使用new关键字;抽象类中可以有抽象方法,也可以包含其他的非抽象方法和字段.;(这个非抽象方法和普通方法的规则都是一样的, ...
2019-11-19 12:32:29
109
原创 继承和多态
面向对象的编程语言的特性:继承、封装、多态。包:(文件夹)包是组织类的一种方式;使用包的目的是保证类的唯一性。包的命名是小写字母,且公司网站采用倒序。用谁导入谁,当需要两个不同的包中的类时,需要确定那个地方用哪个,此时需要写全名来区分;静态导入:import static java.long.System.*;`包的访问权限:默认只能访问包当中的内容。default如果某个成...
2019-11-18 20:52:12
126
原创 对象与类
对象与类对象是实体,需要被创建,可以为我们做事情美类是规范,根据类的定义来创建对象类:(模板) 一类对象的统称对象:(实体) 这一类具体化的一个实例一个类可以产生多个对象对象=属性+服务OOP(面向对象程序设计语言)特性:继承、封装、多态一切都是对象程序就是一堆互相发送消息的对象每个对象有自己的存储空间,里面是其他的对象每个对象都一个类型所有属于某个特定类型的对象...
2019-11-03 16:57:36
199
原创 方法和包
方法存在的意义:是能够模块化的组织代码(当代码规模比较复杂的时候).做到代码被重复使用, 一份代码可以在多个位置使用.让代码更好理解更简单.直接调用现有方法开发, 不必重复造轮子方法定义语法:基本语法://参数是可选的,一个方法也可以不包含参数。Public static 方法返回值类型 方法名称(参数类型 形参){ 方法体; Return 返回值;}//publ...
2019-10-23 17:51:39
138
原创 JAVA程序逻辑控制
程序逻辑控制顺序结构:按照代码书写的顺序一行一行的执行分支结构:if语句:语法形式1:if(布尔表达式){ //条件满足时执行代码}语法形式2:if(布尔表达式){ //条件满足时执行代码}else { //条件不满足时执行代码}语法形式3:if(布尔表达式){ //条件满足时执行代码}else if(布尔表达式){ //条件满足时执行代码}else ...
2019-10-20 22:41:31
292
原创 Java运算符
数据类型(复习)一个类对应一个字节码文件;float类型默认值为0.0fdouble类型默认值为0.0dbyte; charcter; short; integer; diong; fldoat; double; boolean;char和short虽然都是两个字节,但是char是字符类型,并且没有负数。运算符算术运算符:使用 / 时,除数一定不能为0,否则会出现运行时异常异常:...
2019-10-19 17:00:44
230
原创 Java变量、常量
变量变量的作用域:在最近的一组换括号以内起作用,在Java中只有局部变量。(Java中的函数称为方法,在方法体内定义的变量称为局部变量。)变量的命名规则:不仅要合法,还应该合理,要便于识别。一个变量名只能包含数字, 字母, 下划线 ;数字不能开头;变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量.注意: 虽然语法上也允许使用中文/美元符($)命名变量, 但是不推荐这样...
2019-09-29 21:31:05
178
原创 初识Java
数据类型在Java中不存在无符号数,全都是有符号数。八种内置类型:int:四个字节,默认值为0;short:两个字节,默认值为0;long:八个字节,默认值为0;double:八个字节,默认值为0.0;float:四个字节,默认值为0.0;byte:一个字节,默认值为0;char:两个字节,默认值为’\u0000’;boolean:字节大小没有明确规定,默认值为false;J...
2019-09-28 19:56:14
78
原创 进制转换
十进制转二进制:对于十进制的整数:采取除二倒着取余的方法,也就是把十进制的整数除二直至余数为零,然后把所有的余数逆序即可。十进制小数:整数部分和小数部分分开求解,整数部分除二倒取余数,小数部分乘二取整顺序使用,然后把整数和小数部分合在一起即可。十进制转十六进制:先把十进制转为二进制,然后在把四位二进制转为一位十六进制。二进制转为十六进制时,对于整数部分从低位到高位,四位...
2019-09-27 18:40:07
182
原创 冯・诺依曼体系结构
#冯・诺伊曼体系结构#冯desu・诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。人们把冯・诺依曼的这个理论称为冯・诺依曼体系结构。根据冯・诺依曼体系结构构成的计算,必须有以下功能:把需要的程序和数据送到计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的功能。能够根据需要控制程序走向,并能根据...
2019-09-26 19:10:21
789
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人