- 博客(87)
- 收藏
- 关注
原创 自动化单元测试框架unittest的使用步骤
1、 unittest是python自带的单元测试框架,用来管理自动化测试用例(1)框架解析1、TestCase:测试用例、测试方法,以test_开头,否则不会执行2、TestFixture测试固件:运行前后数据的处理,setUp()和tearDown()方法3、TestSuite测试套件:通过addTest()的手动方法,将测试用例放在测试套件中,批量执行测试方法;也可以使用TestLoader自动添加测试用例到测试套件中4、TextTestRunner:执行测试方法,把测试套件跑起来5、T
2021-03-31 23:11:53
908
原创 单元测试
一、Junit框架注解@BeforClass:所有测试用例之前执行一次,用static void修饰@Before:在每个测试方法之前执行一次,setUp()方法,用来做准备工作@Test:测试方法@After:在每个测试方法之后执行一次,用tearDown()方法,用来释放资源@AfterClass:所有测试用例之后执行一次,用static void修饰@Ignore:忽略该测试用例的执行二、在Idea中使用Junit框架进行单元测试(1)Maven项目,在pow.xml中引入Junit的
2021-03-30 23:10:28
107
原创 压缩字符串
一、问题描述给定一个字符串进行压缩例如:(1)输入:aaabbccccaa输出:a3b2c4a2(2)输入:aabbcde输出:aabbcde这个压缩后是a2b2c1d1e1,它的长度大于压缩之前的,所以就输出压缩之前的字符串。二、思路这里用栈来模拟这个过程:栈中没有元素或者栈顶元素和当前元素相等,就入栈;否则就把栈中元素个数记录下来,再把栈顶元素和元素个数拼接,清空栈。三、代码public class Solution { public static void main(Str
2021-03-26 18:44:35
327
原创 字符串最长升序子序列
一、题目描述给定一个字符串(只包含纯大写字母或者小写字母),在这个字符串中找出最长的升序子序列。例如:输入:abcdeababca输出:abcde二、解法这个思路是面试官给的:遍历这个字符串,先把所有的升序子字符串放进链表中,最后遍历链表,找出最小的。三、代码public class MaxSort { public static void main(String[] args) { Scanner sc=new Scanner(System.in);
2021-03-26 17:36:42
762
原创 单元测试框架:unittest
在学习unittest框架的测试套件出现了这样的错误:发现是路径的问题:import unittest#添加测试套件#1、确定测试用例文件夹的路径#2、将测试用例添加到测试套件中#执行测试用例#1、使用unittest自带的执行方式 unittest.TextTestRunner()#2、使用第三方插件执行并且可以生成测试报告#确定测试用例文件路径test_dir="./test_unittest"**#改路径**test_dir="E:\PyCharm\woekbench\\
2021-03-21 23:21:08
102
原创 排序算法(2)
一、快速排序代码实现://快速排序 public static void fastSort(int[] arr){ //1、选取基准值 //2、让left从左往右找比基准值大的,right从右向左找比基准值小的 //3、再针对两个区间递归的进行之前的操作 quickHelper(arr,0,arr.length-1); } public static void quickHelper(int[] arr, int
2020-08-08 12:49:39
815
原创 排序算法(1)
一、直接插入排序//直接插入排序 public static void insert(int[] arr) { for (int bound = 1; bound < arr.length; bound++) { //把bound位置的元素保存下来,插到前面已经排好序的区间 int tmp = arr[bound]; int j=bound-1; for (; j >=0;
2020-08-07 20:44:32
206
原创 数据结构-堆Heap
一、堆的概念堆逻辑上是一颗完全二叉树;堆物理存储在数组中;满足任意节点的值大于其子树的节点值称为大堆;任意节点的值小于其子树节点的值称为小堆;堆的作用是:快速找到集合中的最值。二、建堆、向下调整下面我们给出一个数组,这个数组逻辑上可以看做一颗完全二叉树,但是还不是一个堆,现在我们通过算法,把它构建成一个堆。根节点左右子树不是堆,我们怎么调整呢?这里我们从倒数的第一个非叶子节点的子树开始调整,一直调整到根节点的树,就可以调整成堆。(大堆为例)int[] arr={1,5,3,8,7,6}调
2020-08-07 16:03:06
191
原创 优先级队列
一、什么叫做优先级?首先队列的特性是“先进先出”,优先级队列是根据元素或者说节点的优先级进行处理,比如说在我们使用手机打游戏的时候,这时候有来电,那么系统就会优先处理来电。那么优先级队列,就是根据优先级堆对象进行操作和处理。二、三、优先级队列有很多实现方式,这里我们用堆来进行实现(这里的优先级我们用元素大小来进行表示)基本操作:(1)入队列1、先把要插入的元素放在堆的最后一个位置,堆是用数组实现的,那么就是尾插到数组;2、从该位置开始进行向上调整。(2) 出队列1、先将0号位置的元素保
2020-08-07 15:19:41
1009
1
原创 二叉树-常见题目
一、给定一个二叉树,找到该树中两个指定节点的最近公共祖先百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。如上图,D和E的最近公共祖先就是B,G和F的最近公共祖先就是E,(一个节点也可以是自己的祖先)//这个变量是最近公共节点 private TreeNode Lac = null; //判断公共祖先 public TreeNode low
2020-08-07 11:12:00
498
原创 二叉树-树的遍历(非递归)
一、层序遍历//层序遍历 public static void levelOrder(Node root){ if(root==null){ return; } //用队列来模拟 Queue<Node> queue=new LinkedList<>(); //先把根节点入队列 queue.of
2020-08-07 10:41:26
284
原创 二叉树-判断两棵树是否相同
一、怎样是两棵树相同值相同,树的结构相同二、递归实现//检查两棵树是否相同 //值相同、树的结构相同 public static boolean isSameTree(Node p,Node q){ if(p==null&&q==null){ return true; } if(p==null||q==null){ return false; }
2020-08-06 17:15:19
577
原创 二叉树的基本操作
以下是关于二叉树的基本操作(递归实现)1、求二叉树的总节点个数2、求叶子节点个数3、求第K层节点个数4、求二叉树的高度5、查找给定val所在的节点//求树的节点个数 public static int sumNode(Node root) { if (root == null) { return 0; } return 1 + sumNode(root.left) + sumNode(root.right);
2020-08-06 15:53:12
196
原创 Java-检查括号合法性
一、检查括号的合法性import java.util.Stack;/** * 检查括号是否匹配 */public class StackQueueInterview { public static boolean isVaild(String str){ //先判断字符串是否为空 if(str==null){ return true; } //是左括号,入栈 //是右括号,取栈顶元素
2020-08-06 14:28:40
1024
原创 数据结构-队列
一、队列的特点先进先出二、用顺序表实现队列//用顺序表实现队列 (循环队列) //定义一个head头和一个尾tailpublic class MyQueue2 { public int[] array=new int[100]; public int size; public int head=0; public int tail=0; //入队列(从顺序表尾端进行插入) public void offer(int val){
2020-08-05 14:38:06
144
原创 数据结构-栈
一、栈的特点先进后出二、用顺序表实现栈//顺序表表尾进行插入删除操作public class myStack { int[] array = new int[100]; int size = 0;//记录栈中的元素个数 //入栈 public void push(int value) { //栈满了的话,就不能再插入元素了 if (size == array.length) { return;
2020-08-05 14:30:05
132
原创 Java-ArrayList和LinkedList的区别
(1)ArrayList底层是顺序表(数组),LinkedList底层是链表;(2)ArrayList的数据存在在连续的内存空间上,而LinkedList不是;(3)ArrayList能够高效的进行“随机访问”,按照下标操作元素的时间复杂度为O(1);(4)ArrayList能够高效的进行“插入删除”操作,插入删除的时间复杂度为O(1);这里需要注意的一点是:由于LinkedList在指定位置插入,add()方法是通过下标来确定要插入的位置,取下标的操作仍然是O(n).(5)ArrayList在初
2020-08-05 14:00:16
145
原创 Java-字符串常用方法示例
下面整理了JavaSE部分字符串的一些常用的方法:字符串是一个引用类型,字符串是不可变对象,一旦创建赋值,它的值就不能载发生变化,这些方法不修改原来的字符串,只是生成了一个新的字符串。如果需要改变字符串的话,可以使用StringBuilder或者是StringBuffer,它里面也有一些方法供我们使用。下面代码演示:public class Main { public static void main(String[] args) { //创建字符串常量,字符串是不可变对象,一旦
2020-08-01 23:06:28
133
原创 Java-平衡二叉树
一、平衡二叉树对于树中的任何一个节点,它的左子树和右子树的高度差不超过1那么,这里就有两个方面考虑:1、怎样求子树的高度2、如何判断是否平衡?这里,使用递归来实现public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public cl
2020-07-19 16:48:25
156
原创 Java-集合
一、介绍hashMaphashMap是一个集合Collection,它是基于Map集合实现的,它存储Key-Value这样的键值对,类似于一个映射表。1、针对插入的数据,首先要根据key进行一个数学变换(把key经过一定的数学变换转成下标的过程称为“哈希函数”/“散列函数”,无论插入/删除/查找,执行之前都需计算下标,这个下标也就是哈希值。比如说:key%数组长度->数组下标key-low->数组下标2、两个相同的key,通过相同的哈希函数计算得到的hash值一定相同;3、哈希冲突:
2020-07-17 21:21:07
122
原创 Java-接口vs抽象类
一、接口public interface Student { /** * 这是一个学生类接口 * 接口 * 1、修饰符:interface * 2、接口中只能定义抽象方法(抽象方法是没有方法体的),不能定义普通的成员方法 * 3、接口中可以定义常量,不能定义成员变量 * 4、接口不能实例化,必须有一个类来实现它 * 5、一个类实现该接口,必须实现该接口中的方法(抽象方法)
2020-07-17 17:14:58
122
原创 Java-链表2
一、相交链表的起始节点public class Solution { //找两个链表的公共节点 public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) { return null; } int lenA = 0; int lenB = 0;
2020-07-17 14:25:25
155
原创 Java-链表
一、删除链表中所有值等于val的节点class Solution { public ListNode removeElements(ListNode head, int val) { //先判断链表是否为空 if(head==null){ return null; } ListNode prev=head; ListNode cur=head.next; wh
2020-07-16 15:33:18
196
原创 Java-类加载过程
一、请你讲讲类的加载过程以及双亲委派模型x一个.java文件从编码到最终执行,一般需要两个主要的过程:1、编译:将.java文件,通过javac命令编译成字节码文件2、运行:将编译生成.class文件交给JVM执行二、类加载过程对应的class对象的过程类加载过程指的是JVM虚拟机把.class文件中类的信息加载进内存,并运行解析生成对应的class对象JVM不是一开始就把所有的类加载进内存,而是在执行代码过程中,遇到这个类,此时内存中并没有这个类的相关信息,因此JVM就去.class文件中去
2020-07-15 14:39:56
290
原创 Java-方法重载和方法重写的区别
一、方法重载针对同一个类(1)方法名称一样(2)方法返回值不作要求(3)参数列表不同(参数个数不同或者参数的类型不同)二、方法重写针对不同的类(父类、子类或者接口、实现类)(1)方法名称相同(2)返回值相同或者相容(3)参数列表相同(参数类型和参数个数都要相同)(4)方法重写用@Override注解标注(5)方法重写时,子类的权限修饰符的权限>=父类的权限修饰符(6)子类不能重写权限修饰符为private的类的方法(7)静态方法不能被重写三、方法重载的目的多个方法使用同一
2020-07-15 13:55:24
244
原创 Java-JDK相关命令
JDK的相关命令:启动:Win+R切换盘符: 盘符名称退回根路径: cd 返回上一级:cd…查看当前内容:dir清屏:cls退出关闭:exit切换文件夹:cd 文件夹路径打开powershell窗口:shift+鼠标右键
2020-07-15 13:37:50
147
原创 Java-maven相关文件配置
一、pow.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.
2020-07-12 09:30:24
189
原创 Java-深拷贝、浅拷贝
一、深拷贝、浅拷贝什么是浅拷贝?简单点说,对于简单类型来说,深拷贝拷贝的是值,对于引用类型来说,深拷贝是两个对象两个引用,内容一样浅拷贝拷贝的是地址(两个引用指向同一个对象)什么是深拷贝?二、数组拷贝数组拷贝有下面四种方法:如果数组中的值是基本类型,那么就是浅拷贝如果数组中放的是引用类型,那么就是深拷贝(1)for(2)System.arraycopy(src,0,dest,0,length)(3) Arrays.copyof(int[] original,int newleng
2020-07-10 13:53:27
165
原创 关于Java
一、Java的特性1、简单性:Java语法是一个纯净版本的C++语法,它没有指针、头文件、联合、操作符重载等等。2、面向对象:Java是一个面向对象的语言,在Java世界里,一切皆对象,那么什么是对象呢?先来举一个例子:“面向对象”的木匠始终关注的是所做的椅子,第二位才是工具;而一个“非面向对象”的木匠首先关注使用怎样的工具。3、分布式:Java有丰富的例程库(类似于函数库,例如系统对外提供的功能接口或者服务的集合),用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打
2020-07-09 17:56:27
173
原创 数据库--索引、事务总结
一、索引(1)什么是索引索引是一种特殊的文件,它包含着对数据表里所有记录的引用指针,根据这个指针我们就可以找到这个指针所对应的记录。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。通俗来讲,索引就相当于一本书的目录,根据这个目录中所写的页码我们就能更快的找到我们需要的内容。(2)索引要解决什么问题数据库中的数据很多,比如说当我们在一个表中要查找一条记录的时候,就必须从头扫描这个表,看哪条记录是我们想要找的,这样查找就很慢。那么索引就是为了***加快查找的效率***。
2020-05-31 21:06:09
300
原创 Java-对称二叉树(递归实现)
一、概念给定一个二叉树,检查它是否是镜像对称的。对称二叉树特点:根节点为第一层,从第二层开始:节点值相同,左子树的left右子树的right,右子树的left左子树的right.二、举例三、代码实现//对称二叉树:对应节点的值相同&&左右子树要刚好相反 //和根节点没有关系,看左右子树是否对称:值相等&&左子树.left和右子树.right是否对...
2020-04-23 09:01:25
261
原创 java-另一个树的子树(递归实现)
一、概念给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。如果两个树是空树的话,那么认为是子树。二、举例返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。返回false三、代码(递归实现)//两个二叉树是否相等:值相等并且树的结构相同 ...
2020-04-22 21:46:31
330
原创 java-二叉树遍历递归实现
一、概念二叉树:树的度为2(树中每个节点最多有两个度),树的度就是树中最大节点度。遍历:把每个数据访问(visit)一遍,访问:打印、比较、修改,可以是各种复杂计算或者创建/删除节点。二、遍历1、先序遍历:先访问根节点、再访问左子树、再访问右子树2、中序遍历:先访问左子树、再访问根节点、再访问右子树3、后序遍历:先访问左子树、再访问右子树、再访问左子树4、层序遍历:一层一层的进行访问...
2020-04-22 14:20:12
518
原创 Java--求数字的奇数位和偶数位
1、问题给一个二进制序列,要求打印出奇数位和偶数位分别是什么2、分析比如说十进制数10再内存中存储32位,它的二进制为:0000 0000 0000 0000 0000 0000 0000 1010奇数位:0000 0000 0000 0000偶数位:0000 0000 0000 0011那么这里所用到的方法就与&运算符,和右移运算符>>那么来看一下方法的思...
2020-03-10 13:20:11
1691
原创 Java--调整数组元素顺序将奇数放在偶数之前
1、问题调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。2、分析怎 样来进行调整呢?1 4 2 3 6 7 5 8给两个变量,一个i指向数组的第一个元素,一个j指向数组的最后一个元素如果i是奇数,则i++;如果j是偶数,则j–;如果不是的话,那就进行交换,i++,j–i是偶数,j是奇数,就交换,则将奇数放在了偶数前面3、代码演示package demomethod0...
2020-03-10 13:01:11
527
原创 Java--一个整数二进制存储时1的个数
1、问题求一个整数,在内存当中存储时,二进制1的个数。2、分析14 0000 1110 1的个数为310 0000 1010 1的个数为2这里用 位运算符:与& 来解决这个问题让这个整数&1,结果为1,则这个数的二进制包含1个1,如果这个数字不为0,则右移一位,再&1,直到这个数字右移为0,则结束。在这个过程中需要一个计...
2020-03-10 12:27:48
334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人