- 博客(71)
- 收藏
- 关注
原创 selenium
1.selenium概念:功能自动化测试工具;ThroughtWorks公司一个强大的开源Web功能测试工具系列2.优势:免费小巧支持多平台:chrome firefox adge Opera支持分布式:selenium ,gird支持多语言:python,java,c#,ruby,javaScript3.selenium工具集selenium1:selenium IDE 将录制生成的测试用例导出为WebDriver所支持的各种编程语言selenium grid 支持分布式测试sel
2021-03-07 23:26:11 220
原创 软件测试概念
什么是软件测试验证软件功能是否满足用户的需求。软件测试和研发的区别1、测试与调试的区别:目的不同–测试的任务是发现程序中的缺陷;调试的任务是定位并且解决程序中的问题。参与角色不同–测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行。调试由开发人员完成。执行的阶段不同–测试贯穿整个软件开发生命周期,调试一般在开发阶段2、难易程度 开发广度小,专业度高。测试广度大,专业度低工作环境 基本类似薪水 中小企业总体比研发低,自动化等专业测试
2021-01-27 02:06:32 425
原创 线程
package java_0513;public class ThreadDemo1 { static class MyThread extends Thread { //重写run方法 Alt+ insert @Override public void run() { super.run(); //表示线程的入口方法,当线程启动之后,就会执行到run方法中的逻辑 //这个..
2021-01-26 01:31:43 199
原创 操作系统进程线程
现在,多核CPU已经非常普及了,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。对于并发:多个进程在一个CPU下采用时间片轮转的方式,在一段时间之内,让多个进程都得以推进,称之为并发。并行:多个进程在多个CPU下分别,同时进行运行,这称之为并行。计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指进程的并行性(多处理机的情况下,多个进程同时运行)和并发性(单处理机的情况下,多个进程在同一时间间隔运行的)。并发与并行类似于工.
2021-01-25 22:27:47 146
原创 2021-01-25
-- 使用上约束的学生表create table student_0604 ( id int primary key auto_increment comment '选择自增的数列作为主键', sn int unique comment '学号,可以不填,也就是 null,但填了就不能重复', name varchar(100) not null comment '不允许为 null', sex char(1) not null default '女' comment '性别')...
2021-01-25 20:21:21 125
原创 MySQL表的增删改查(改、删-图解,实现)
修改(Update)UPDATE table_name SET column = expr [, column = expr …][WHERE …] [ORDER BY …] [LIMIT …]-- 修改学生信息,把 唐三藏的 qq 邮箱修改为 "tangtang@fo.com"update student set*qq_mail = "tangtang@fo" where name = "唐三藏";-- 如果英语成绩小于 60 分,把英语成绩改为 60 分-- 如果英语成绩大于等于 6
2021-01-24 20:29:21 302
原创 MySQL表的增删改查(查-图解,实现)
create table student ( id int, sn int comment "学号", name varchar(20) comment "姓名", qq_mail varchar(20) comment "qq 邮箱" );1单行数据 + 全列插入– 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致insert into student values (100, 10000, ‘唐三藏’, NULL);insert into student values
2021-01-18 00:15:19 300
原创 MYSQL数据库基础(超详细 图解、截图)
创建库: create database 名称 charset utf8mb4;删除库:drop database 名称;查看所有库:show databases;设置默认库:use 名称查看当前默认库:select database();查看建库语句:show create database 名称;建表: create table 表名称(//每一列的定义);删表: drop table 名称查看所有表:show tables查看建表语句:show create table .
2021-01-15 22:57:11 2357
原创 2020-12-31
1.插入排序import java.util.Arrays;public class TestSort { /** * 时间复杂度: * 最坏情况是:O(n^2) 最好情况(有序的情况):O(n) * 非常重要的5个字:越有序越快。 * 插入排序,初始数据越接近有序,时间效率越高 * 空间复杂度:O(1) * 稳定性:稳定的排序 * @param array */ public static vo.
2021-01-15 20:50:58 133 1
原创 前中后序的非递归实现
** 二叉树前序非递归遍历实现 。** // 前序遍历 void preOrderTraversalNor(Node root){ if(root == null) return; Stack<Node> stack = new Stack<>(); Node cur = root; while (cur != null || !stack.empty()) { while (cur !
2020-12-21 21:43:51 200
原创 判断一棵树是不是完全二叉树(图解、思路与实现)
// 判断一棵树是不是完全二叉树 boolean isCompleteTree(Node root) { if(root == null) return true;//空树肯定是完全二叉树 Queue<Node> queue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()) { Node cur = qu.
2020-12-21 20:07:52 349 1
原创 二叉树的层次遍历(图解、思想、与实现)
// 层序遍历 /* * 大体思想是需要创建个队列放入节点 使用遍历思想 *先判断根节点是否为空,如果不为空,入队 先把根放进来 *队列不为空 弹出队头元素 并打印它 * */ void levelOrderTraversal(Node root) { if (root == null) return;//先判断根节点是否为空 //如果不为空 Queue<Node> queue = new ..
2020-12-21 19:40:48 2117
原创 对称二叉树(力扣)图解、思路与实现
给定一个二叉树,检查它是否是镜像对称的。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean isSymmetric(TreeNode r
2020-12-16 19:41:41 281
原创 平衡二叉树(力扣)图解、思路与实现
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { thi
2020-12-16 18:48:03 339
原创 求二叉树的最大深度(力扣)图解、思路与实现
找到当前树的左树的高度和右树的高度比较取最大值 + 1/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNo.
2020-12-16 18:06:28 850
原创 另一个树的子树(力扣)图解、思路与实现
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNod
2020-12-16 17:56:52 315
原创 检查两棵树是否相同(力扣)图解、思路与实现
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。1先判断两棵树只要有一棵树不为空 那么就返回false;2再判断两棵树都为空 那么返回true3其次判断两棵树节点val值是否相同 不相同返回false;4如果前面三个条件都不满足 看根节点的左右树是否相同/** * Definition for a binary tree node. * public class TreeNode { * int val
2020-12-16 17:21:49 1287
原创 二叉树的10种基本操作 (图解、思路与实现)
// 前序遍历void preOrderTraversal(Node root);// 中序遍历void inOrderTraversal(Node root);// 后序遍历void postOrderTraversal(Node root);// 遍历思路-求结点个数static int size = 0;void getSize1(Node root);// 子问题思路-求结点个数int getSize2(Node root);// 遍历思路-求叶子结点个数static i..
2020-12-16 16:47:26 766 1
原创 二叉树的前序遍历、中序遍历、后序遍历(递归实现)力扣 思路与实现
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, Tree
2020-12-14 18:58:10 177
原创 最小栈(力扣)图解、思路与实现
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。class MinStack { private Stack<Integer> stack; private Stack<Integer> minStack; public MinStack(){ .
2020-12-12 19:27:58 245 1
原创 用2个栈实现队列(力扣)图解、思路与实现
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 falseclass MyQueue { private Stack<Integer> stack1; .
2020-12-12 18:29:48 364
原创 用2个队列实现栈(力扣)图解、思路与实现
入栈:1.哪个队列不为空,就将元素放到哪个队列当中2.如果两个队列都为空,那么放到第一个队列当中出栈:哪个队列不为空,就出n-1个元素出到另一个队列中,再将剩余的哪个元素出队列0.判断栈是否为空 也就是两个队列是否为空1.出不为空的那个队列2.n个元素的话 出n-1个到另外的队列 出n-1个到另外的队列要先保存使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空import ja.
2020-12-12 17:24:50 516
原创 给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。图解、思路与实现(力扣)
栈存放左括号 i遍历字符串public class TestDemo { public boolean isValid(String s) { Stack<Character> stack = new Stack<>();//new一个栈放所有的左括号 for (int i = 0; i < s.length(); i++) {//遍历括号 将左括号都放入栈中 char ch = s.charAt(i).
2020-12-10 23:59:02 769 1
原创 设计循环队列实现(力扣)图解、思路与实现
//循环队列/** rear表示当前可以存放数据元素的下标* front==rear队列是空* 浪费一个空间,如果rear下一个是front就认为是满的* 但是不能rear++ 因为最后一个下标无法到达0,* 用(rear+1) % 数组的长度elem.length* 出队 移动front* 队列如果是满的rear的下一个等于front this.rear+1) % this.elem.length ==this.front* */public class MyCircular..
2020-12-10 22:50:30 392
原创 链式队列—用链表来实现队列 (思路与实现)
链式队列(先进先出)用链表来实现队列class Node { public int data; public Node next; //每次new一个节点 就要调用它的构造方法 public Node(int data) { this.data = data; }}public class MyQueue { public int usedSize; public Node front;//队列的头 public N
2020-12-10 22:46:59 914
原创 栈的方法(push()、stack.pop()、stack.peek()、stack.empty())具体用法(图解、思路与实现)
栈底层实际上就是个数组栈方法Stack stack = new Stack<>();stack.push(1);//入栈stack.push(20);1.System.out.println(stack.peek());//查看拿到栈顶元素 不删除 结果为202.System.out.println(stack.pop());//出栈 删除栈顶元素 结果为203.System.out.println**(stack.peek()**);//结果为14.System.out
2020-12-08 22:31:21 19638
原创 List(线性表)常用方法
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;import java.util.ArrayList;import java.util.List;public class TestDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); /.
2020-12-07 19:44:34 334
原创 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。(力扣)
public List<List<Integer>> generate(int numRows) { List<List<Integer>> ret = new ArrayList<>(); if(numRows == 0) { return ret; } List<Integer> oneRow = new ArrayList<&...
2020-12-07 18:15:01 870
原创 异常(详细 )
认识异常1. 异常的背景初识异常除以 0System.out.println(10 / 0);// 执行结果//Exception in thread "main" //java.lang.ArithmeticException: / by zero数组下标越界int[] arr = {1, 2, 3};System.out.println(arr[100]);// 执行结果//Exception in thread "main" java.lang.ArrayIndexOutOfB
2020-12-06 23:30:17 200
原创 面向对象编程(继承、组合、多态、抽象类、接口)
继承代码中创建的类, 主要是为了抽象现实中的一些事物(包含属性和方法).有的时候客观事物之间就存在一些关联关系, 那么在表示成类和对象的时候也会存在一定的关联.例如, 设计一个类表示动物注意, 我们可以给每个类创建一个单独的 java 文件. 类名必须和 .java 文件名匹配(大小写敏感)// Animal.javapublic class Animal { public String name; public Animal(String name) { this.name = n
2020-12-06 22:28:17 454
原创 接口和抽象类的区别?
接口和抽象类的区别?接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。接口是公开的,不能有私有的方法或变量,接口中的所有方法都没有方法体,通过关键字interface实现。抽象类是可以有私有方法或私有变量的,通过把类或者类中的方法声明为abstract来表示一个类是抽象类,被声明为抽象的方法不能包含方法体。子类实现方法必须含有相同的或者更低的访问级别(public->protected->private)。抽象类的子类为父类中所有抽象方法的具体实
2020-12-04 15:11:03 76
原创 抽象类和接口
抽象类没有实际工作的方法, 我们可以把它设计成一个 抽象方法(abstract method), 包含抽象方法的类我们称为 抽象类(abstract class)abstract class Shape { abstract public void draw();}在 draw 方法前加上 abstract 关键字, 表示这是一个抽象方法. 同时抽象方法没有方法体 (没有 { }, 不能执行具体代码)。对于包含抽象方法的类, 必须加上 abstract 关键字表示这是一个抽象类注意:1、
2020-12-04 14:52:18 103
原创 多态(向上转型、动态绑定、方法重写、理解多态)
多态向上转型Bird bird = new Bird("圆圆");这个代码也可以写成这个样子Bird bird = new Bird("圆圆");Animal bird2 = bird;// 或者写成下面的方式Animal bird2 = new Bird("圆圆");此时 bird2 是一个父类 (Animal) 的引用, 指向一个子类 (Bird) 的实例. 这种写法称为向上转型.向上转型之后 通过父类的引用 只能访问父类自己的方法或者属性向上转型发生的时机:直接赋值
2020-12-02 23:43:20 293
原创 继承( protected 关键字、final 关键字)与组合
继承代码中创建的类, 主要是为了抽象现实中的一些事物(包含属性和方法).有的时候客观事物之间就存在一些关联关系, 那么在表示成类和对象的时候也会存在一定的关联.例如, 设计一个类表示动物注意, 我们可以给每个类创建一个单独的 java 文件. 类名必须和 .java 文件名匹配(大小写敏感)// Animal.javapublic class Animal { public String name; public Animal(String name) { this.name = n
2020-12-02 19:47:42 568
原创 面向对象编程(包)
包 (package) 是组织类的一种方式.使用包的主要目的是保证类的唯一性.import java.util.Date;public class Test { public static void main(String[] args) { Date date = new Date(); // 得到一个毫秒级别的时间戳 System.out.println(date.getTime()); }}如果需要使用 java.util 中.
2020-12-01 23:53:43 460
原创 双向链表详细
无头双向链表在Java的集合框架库中LinkedList底层实现就是无头双向循环链表头插法class Node { public int data;//数据 public Node next;//后继信息 引用类型不用初始化 null public Node prev;//前驱信息 //提供构造方法 public Node(int data) { this.data = data; }} public class MyLi
2020-12-01 19:08:25 1335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人