自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树1

1.树:概念:n个有限节点组成的具有层次关系的集合特性:根节点没有前驱子节点只有一个父节点N个节点n-1条边概念:节点的度:节点拥有子树的个数树的度:树中节点最大的度叶子结点或者终端节点:度为0双亲结点或者父节点:孩子节点:根节点;没有双亲的节点节点的层次:如果没有特殊说明,根节点在第一层深度:节点的层次非终端节点:度不为0兄弟节点:居于相同双亲的节点堂兄弟节点:双亲在同一层节点的祖先:从根到所经分支的所有节点子孙:一某节点为根的子树中任一节点森林:树的集合树的表示形

2020-09-23 17:48:36 918

原创 selenium2

java 单元测试框架 白盒测试testNG1.unittest功能测试单元框架(黑盒测试)import unittest各组件的关系:TestCase:编写单元测试用例最常用用的类编写一个类,继承unittest.TestCase,test case单元测试用例测试固件Test Fixture:setup()第一个:测试前的准备工作tearDown()最后一个:测试后的清理工作测试套件:TestSuite 类来生成测试套件testsuite单元测试用例的集合addTest()

2020-09-23 17:42:33 165

原创 selenium1的使用

1.selenium概念:功能自动化测试工具;ThroughtWorks公司一个强大的开源Web功能测试工具系列2.优势:免费小巧支持多平台:chrome firefox adge Opera支持分布式:selenium ,gird支持多语言:python,java,c#,ruby,javaScript3.selenium工具集selenium1:selenium IDE 将录制生成的测试用例导出为WebDriver所支持的各种编程语言selenium grid 支持分布式测试sel

2020-09-23 17:36:17 254

原创 loadRunner

1.概念:loadRunner是一种适用于软件体系架构自动化负载工具,从用户关注的响应时间,吞吐量,并发用户数和性能计数器等方面来衡量系统的性能表现,辅助用户进行系统性能的优化2.组成:VuGen:是录制与编写脚本的地方,通过录制与 编写脚本来模拟用户的行为Controller:是执行负载测试管理与监控的地方,制定具体的性能测试方案,执行性能测试,收集测试数据,监控测试指标。监控工具将指标数据显示在监控页面上Analysis:测试完成后,对测试过程中收集到的各种性能数据进行计算,汇总,与处理,生成

2020-09-23 17:24:10 73

原创 数据库操作2

关于数据的操作–dml增createcomment 注释insert into 表名() values()sql语句中’'或者“”均支持单行数据+全列插入多行数据+指定列插入全字段 单行/多行指定字段 单行/多行–将学生表中的数据复制到用户表insert intotest_uesr(name.email) slect name,qq_mail from student;删deletedelete from 表名where 条件order by …limi

2020-09-22 21:58:06 103

原创 数据库的操作1

结构性操作:database和table建立数据库:create database 名称(字母,数字,下划线,不能以数字开头) charset utf8mb4;删除数据库:drop database 数据库名;查看数据库:show databases;设置默认数据库:use 名称查看现在的默认数据库:select database();查看当时的某个数据库的建库语句:show create database 数据库名表的操作:建表语句–表名称(每一列的信息–列名称,类型,其

2020-09-22 21:49:13 56

原创 数据库的介绍

why:内存级别的数据(不是持久化的数据)mysql 会把这些数据一直保存数据库是一类专门管理数据的软件的抽象概念,mysql属于其中的一个具体的品牌有利于增删查改为什么用mysql:开源,成本低,好用用的人多,有利于交流how;1.怎么使用(重点)2.他是怎么做到的数据库分类:关系型数据库非关系型数据库学习mysql重点是学习SQL语言SQL分类:标准ddl 数据定义语言:数据库,表的操作,试图,索引的创建dml 数据操纵 查询,更新(新增,修改,删除)dcl

2020-09-22 21:47:34 68

原创 Set

Set1.概念:接口,继承自collection,只存储了key2.注意事项:1key唯一,不能修改;不能插入空的key2.去重3.set的底层是使用Map实现的,其使用key与Object的一个默认对象插入到Map中3.常用apiBoolean add()//添加元素1.key存在,不能再添加2.key并不存在,可以直接添加contains(Object o)//判断o是否在集合中Boolean remove(Object o)//删除o1.key存在,返回true2.key不

2020-09-22 15:58:20 69

原创 Map

文章目录Map1.概念:2.注意事项:3.api4.treeMap,hashMap,hashTable,LinkedHashMap的区别?5.map排序:Map1.概念:接口类,继承没有继承自Collection,存储的是<key,value>键值对;key不可以重复2.注意事项:1.key是唯一,不能为空;value可以修改,key不可以修改2.map为接口3.api获得键值对:Map.Entry<k,v>键值对实体Map.Entery类getKey()ge

2020-09-22 15:54:46 116

原创 性能测试概念以及分类

文章目录1.性能测试的相关概念2性能测试的分类1.性能测试的相关概念并发数:狭义:同一时刻,访问同一系统,同一功能的用户数广义用户数:同一是向系统发起请求的用户数量并发用户数:同一时间,同一系统,使用同一功能的用户数系统用户数:在线用户数响应时间:用户响应时间+前端响应时间+网络响应时间+服务器响应时间+用户响应时间是反映系统性能的指标之一吞吐量:throughput系统处理客户请求数客户端与服务器进行交换的数据总量吞吐率: 吞吐量/传输时间字节数/每秒,业务数/秒,点击数/每

2020-09-17 22:09:42 359

原创 jvm内存

线程私有区域:程序计数器:负责管理进度一块比较小的内存,当前线程所执行代码的行号指示器;jvm根据程序计数器的值来决定下一条需要执行的字节码指令jvm虚拟机栈:存储栈帧(包含多个栈帧),栈帧中包含局部变量表,操作数栈,动态链接,方法出口此区域会产生两个异常:线程请求的栈深度大于虚拟机所允许的深度,将会抛出栈溢出(stackOverFowError);例如:递归,每次递归调用都是一次入栈,如栈的数量过多就会造成异常虚拟机在动态扩展时无法申请到做够的内存就会造成内存溢出内存溢出与内存泄露的区.

2020-09-03 17:35:57 94

原创 图书借阅管理

测试用例:2.selenium登录代码#登录功能# encoding = uft-8from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timedriver = webdriver.Firefox()driver.get("http://localhost:8080/book/public/index.html")driver.find_element_by_name("u

2020-08-26 20:49:36 382

原创 Stack

栈:概念:特殊的线性表只能在固定的一段进行插入和删除(栈顶)原则:后进先出压栈:入数据在栈顶出栈:出数据在栈顶实现:顺序表,尾插+尾删E push(E item)压栈E pop()出栈E peek()查看栈顶元素Boolean empty()判断栈是否为空intsearch(Object)返回一个对象在此堆栈上的基于1的位置。public class MyStack { public static void main(String[] args) { Sta

2020-07-31 08:21:09 83

原创 泛型

泛型:将类型参数化 E的类型就是将来存储对象的实际类型泛型类:就是把泛型定义在类上,用户使用该类的时候,才把类型明确下来…泛型的分类:泛型类 泛型方法语法:< >泛型的标志 编译阶段不确定E类型变量,在定义时是形参,代表的是最终传入的类型;泛型类可以一次有多个类型变量,用逗号分割整个称为ArrayList泛型类型整个ArrayList称为参数化的类型ParameterizedTypeMyArrayList l1=new MyArrayList< >告诉编译

2020-07-30 12:21:52 88

原创 java中的ArrayList和LinkedList

java中的ArrayList构造一个初始容量为10的空列表它具有如下特点:容量不固定,随着容量的增加而动态扩容(阈值基本不会达到)有序集合(插入的顺序==输出的顺序)插入的元素可以为null增删改查效率更高(相对于LinkedList来说)线程不安全java中的ArrayList:add()remove(int index)//删除顺序表中i号位置的元素:将i号位置以后的元素,都向前移动一个元素size()get()isEmpty()Object[] toArray()se

2020-07-30 12:16:26 122

原创 队列

队列:概念:只允许在一端进行插入数据操作(队尾rear),再另一端进行删除(队头front)实现:数组;链表(头插,尾删)特性:先进先出入队列:offer(e)出队列:poll()队首元素:peek()假溢出:不可以添加元素,否组会造成数组越界此时又不应该扩充数组,因为还有大量实际空间并未使用解决假溢出:循环队列数组实现下标移动:如何区满与空;空的循环队列:front=rear满的循环队列:(rear+1)%size=front队列长度:(rear-front+size)%s

2020-07-28 17:41:13 91

原创 测试管理工具---禅道

常用测试管理工具的功能:测试需求用例测试过程bug报表统计权限管理市场所有的测试管理工具:QC/ALM:商业web测试管理工具CQ:商业配置管理工作中的变更管理工具,可用于任务分配、Bug 跟踪、变更管理、流程制定等。JIRA:安装插件试用+商业项目管理工具TestLink:开源:开放源代码专门写测试用例bugzilia:没有测试用例和测试过程的管理tapd:敏捷开发腾讯需求迭代报表wiki:文档管理工具禅道:免费的项目管理工具编程之道 编程之

2020-07-27 09:32:07 303

原创 java异常

异常:程序在运行时的出现错误通知调用者的一种机制运行时:指的是程序已经编译通过得到class文件,再有jvm执行过程中出现的错误防御编程:EAPA:先操作遇到问题在处理LBYL:在操作之前做充分检查异常的核心思想:EAPAtry-catch基本用法:try{有可能出现异常的语句;}catch(异常类型 异常对象){}finally{异常的出口;}注意事项:try代码块中放的是可能出现异常的代码catch放的是出现异常后的处理行为finally用于处理工作,无论是否发生异常,

2020-07-27 09:18:08 86

原创 软件测试的分类

1.按开发阶段划分:1.单元测试:就是针对程序内部的最小模块进行测试单元测试:java Junitc++ gtest阶段:编码后TDD编码前(Test-Driven-Development)测试驱动开发测试对象:最小模块测试人员:白盒测试工程师或开发工程师测试依据:代码注释+详细设计文档测试方法:白盒测试测试内容:模块接口,局部数据结构,路径测试,错误处理,边界测试2.集成测试按照一定的策略将各个模块组合起来,进行测试集成测试也称联合测试(联调)、组装测试,将程序模块采用适当

2020-07-13 12:30:39 159

原创 软件测试和开发的模型

文章目录1.软件开发1.1瀑布模型:1.2螺旋模型:1.3增量模型,迭代模型:1.4敏捷模型(scrum):2.软件测试2.1V模型:2.2w模型(双v模型):1.软件开发生命周期:需求分析,计划,设计,编码,测试,运行维护1.1瀑布模型:优点:–强调开发的阶段性; –强调早期计划及需求调查; –强调产品测试缺点:–风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会瀑布模型的一个最大缺陷在于,可以运行的产品很迟才能被看到1.2螺旋模型:缺点:对风险管理的技能提出了很高的要求,需要人力

2020-07-13 12:25:08 404

原创 测试用例

文章目录1.什么是测试用例:2. 测试用例的好处?3.基于整体的设计测试用例:4.六大设计用例的方法:1.什么是测试用例:向被测试系统发起的一组操作集合重点:包含测试环境,测试数据,操作步骤,预期结果( 标题,功能模块,前提条件, 重要性)2. 测试用例的好处?可以评估需求的覆盖率可以重复使用(做回归测试的时候)后辈借鉴学习,汲取经验3.基于整体的设计测试用例:基于需求的设计测试用例的方法基于需求设计用例的前提:要保证我们需求的正确性和完整性,逻辑要一致。(验证需求)用户需求和软件需

2020-07-13 12:19:46 270

原创 bug详述

文章目录1.bug的概念:2.如何描述一个BUG3.BUG的生命周期(从BUG创建到BUG关闭,bug所经历的一些状态):4.如果因为一个BUG和开发人员产生冲突,测试人员如何恰当处理?5.如何开始第一次测试6.测试的执行和BUG管理1.bug的概念:当且仅当规格说明书(软件需求说明书)存在并且正确,程序和规格说明书之间不符合,称之为错误当用户的需求存在并且合理,程序没有满足用户的需求,称之为BUG2.如何描述一个BUG2.1描述BUG的要素:测试版本,测试环境,操作步骤,预期结果,实际结果2

2020-07-13 12:16:05 382

原创 测试基础知识

文章目录1. **什么是软件测试?**2.**软件测试分类**3.**软件测试和研发的区别?**4.**测试和调试的区别:**5.**一个优秀的测试人员所具备的素质?(为什么要做软件测试)**1. 什么是软件测试?验证软件功能是否满足用户的需求软件测试最基本的活动就是再找缺陷,也就是bug例如:一场考试,做完一遍之后,进行一遍检查,就是在测试书籍:软件测试艺术2.软件测试分类测试对象:web测试 APP测试 游戏测试 嵌入式测试工程师是否手工:手工 自动化测试分类:功能,性能,安全按级

2020-07-13 11:58:20 142

原创 String,StringBuffer,StringBuilder的区别?

String和StringBuilder及StringBuffer的区别?1.String的拼接会产生临时对象,StringBuilder及StringBuffer不会String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.2.String的拼接会优化为StringBuilder的append()3.StringBuilder及StringBuffer的一些方法是String不具备的StringBuilder及StringBuffer的区别?StringB

2020-07-01 16:25:26 85

原创 测试基础

文章目录什么是软件测试?软件测试分类软件测试和研发的区别?测试和调试的区别:一个优秀的测试人员所具备的素质?(为什么要做软件测试)什么是软件测试?验证软件功能是否满足用户的需求软件测试最基本的活动就是再找bug例如:一场考试,做完一遍之后,进行一遍检查,就是在测试书籍:软件测试艺术软件测试分类测试对象:web测试 APP测试 游戏测试 嵌入式测试工程师是否手工:手工 自动化测试分类:功能,性能,安全按级别:初级,中级,高级,资深,组长,主管,经理,总监软件测试和研发的区别?难易

2020-06-30 21:26:02 153

原创 输出出现次数大于等于n/2的数

public class Test3{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); while (sc.hasNextLine()){ String s=sc.nextLine(); String [] str=s.split(" "); Integer [] arr= new Inte.

2020-06-30 21:22:33 181

原创 最多可以放的蛋糕数

思路:采用数组法,在遍历前4个方块的时候,将他们周围的元素4个方块置位-1;public static int number(int m,int n) { int[][] array = new int[m][n];//数组初始值为0 int count = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { .

2020-06-30 21:19:35 159

原创 接口

文章目录接口:interface注意:优点:一般情况下自动类型进行比较接口:interface接口当中的方法都是抽象的,其实可以有具体实现的方法(JDK1.8加入),这个方法是被default所修饰注意:接口当中定义的成员变量默认为常量默认是:public static final ,成员方法默认:public abstract接口是不可以被实例化接口和类之间的关系:implements为了解决java单继承的问题,一个类可以实现多个接口只要这个类实现该接口,那么你就可以进行向上转型

2020-06-30 21:16:11 71

原创 抽象类

文章目录抽象类1.抽象方法的定义:2.作用:3. 注意:抽象类1.抽象方法的定义:如果一个方法被abstract所修饰,他就是抽象方法没有具体的实现包含抽象方法的类就是抽象类2.作用:就是被继承3. 注意:抽象类不可以被实例化类内的数据成员,和普通类没有区别如果一个类继承了这个抽象类,那么这个必须重写抽象类当中的抽象方法当抽象类A继承了抽象类B,那么抽象类A可以不重写B中的方法,但是一旦A被继承,那么一定要重写这个抽象方法抽象类或者抽象方法不能被private,也不能是final

2020-06-30 21:13:16 73

原创 多态

文章目录1.多态:1.1 什么是多态?1.2多态发生的前提向上转型:重写(复写 覆盖) :override1.3 运行时绑定:(动态绑定)1.4向下转型;2.多态的优点1.多态:1.1 什么是多态?父类引用子类对象父类和子类同名的覆盖方法通过父类引用调用重写的方法的时候,这就是多态多态的核心:类的调用者,不必关心对象的具体类型1.2多态发生的前提向上转型:父类的引用指向子类对象向上转型之后:通过父类的引用,只能访问父类的属性和方法向上转型发生的时机:直接赋值传参返回值重写(复

2020-06-30 21:10:12 78

原创 继承

文章目录继承:**this和super的区别?****访问修饰限定符关键字:****final关键字:**组合:has a继承:具备相同的属性和方法,is-a的关系继承的优点:代码的复用子类/派生类父类/基类/超类子类继承了父类的什么?继承了除父类构造方法之外所有的注意点:对于父类的private的字段和方法,子类是无法访问的java一个子类只能继承一个父类子类在构造的时候,要先帮助父类的构造,父类如果有构造方法,子类要显示调用this和super的区别?this代表当前对象

2020-06-30 21:02:53 70

原创 找到两个链表相交的节点

public static void createCut(Node headA,Node headB){ headA.next=headB.next.next; } //输入两个链表,找到链表相交的节点 public static Node getInterSectionNode(Node headA,Node headB){ Node ps=headA;//默认指向长的单链表 Node pl=headB;//默认指向指向短的单

2020-06-26 18:55:07 149

原创 把两个有序单链表,合并为一个单链表

public static Node mergeTwoLists(Node headA,Node headB){ Node newHead=new Node(-1); Node tmp=newHead; while(headA!=null&&headB!=null){ if(headA.data<headB.data){ tmp.next=headA; .

2020-06-26 18:54:26 625

原创 找到链表环的入口

//找到环的入口 slow=this.head; slow=slow.next; fast=fast.next;public ListNode detectCycle() { ListNode fast = this.head; ListNode slow = this.head; while (fast != null && fast.next != null) { fast = fast.next.next; slow

2020-06-26 18:51:16 102

原创 链表是否有环

//链表是否有环 //走三步,走一步 很慢才能相遇 ,或者永远不相遇 public boolean hasCycle() { Node fast = this.head; Node slow = this.head; while (fast != null && fast.next != null) { //可以快速相遇 fast = fast.next.next;

2020-06-26 18:48:53 82

原创 链表是否是回文

//链表是否是回文 找到链表的中间节点 反转单链表 head从后往后走 slow从后往前走 public boolean chkPalindrome() { if (this.head == null){ return false; } if (this.head.next == null){ return true; } Node fast=this.head;

2020-06-26 18:48:13 72

原创 删除链表中重复的节点

//删除链表中重复的节点 public Node delete(){ Node newHead=new Node(-1); Node tmp=newHead; Node cur=this.head; while(cur!=null) { if (cur.next != null && cur.data == cur.next.data) {

2020-06-26 18:42:25 62

原创 以x为基准,将链表分成两部分,原来的数据顺序不变

/以x为基准,将链表分成两部分,原来的数据顺序不变 public Node partition(int x){ if(head==null){ return null; } Node cur=this.head; Node bs=null; Node be=null; Node as=null; Node ae=null; while(cur!=n

2020-06-26 18:41:50 147

原创 链表中倒数第K个节点

//链表中倒数第K各节点 k的合法性 public Node node(int k){ if(head==null){ return null; } if(k<=0){ System.out.println("K位置不合法"); return null; } Node fast=this.he

2020-06-26 18:40:07 46

原创 返回链表中间节点

//返回链表的中间结点,遍历一遍 public Node midNode(){ Node fast=this.head; Node slow=this.head; while(fast!=null&&fast.next!=null){ fast=fast.next.next; slow=slow.next; } return slow; }

2020-06-26 18:39:17 100

空空如也

空空如也

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

TA关注的人

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