自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 论坛系统测试

【代码】论坛系统测试。

2024-02-29 15:08:29 905

原创 网络通信基础

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)a.b.c.d(a,b,c,d都是0~255之间的十进制整数)

2023-07-24 19:47:18 356

原创 Junit单元测试框架

如果使用包名来指定运行的范围,那么该包下的测试类的命名需要以。

2023-05-30 17:03:49 665

原创 图片服务器测试

【代码】图片服务器测试。

2023-05-21 14:25:03 840 1

原创 MySQL数据库之JDBC

ResultSet对象被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法提供了对这些行中数据的访问。

2023-05-17 14:54:47 646

原创 MySQL数据库之事务

假设一种场景:你毕业了,学校的教务系统后台 MySQL 中,不在需要你的数据,要删除你的所有信息(一般不会:) ), 那么要删除你的基本信息(姓名,电话,籍贯等)的同时,也删除和你有关的其他信息,比如:你的各科成绩,你在校表现,甚至你在论坛发过的文章等。正如我们上面所说,一个 MySQL 数据库,可不止你一个事务在运行,同一时刻,甚至有大量的请求被包装成事务,在向 MySQL 服务器发起事务处理请求。脏读(第一个事务修改数据但没有提交,第二个事务就读取,在第一个事务回滚后,第二个事务读取的就是脏数据)

2023-04-26 14:59:02 428

原创 MySQL数据库之索引

数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系,索引所起的作用类似书籍目录,可用于快速定位、检索数据。索引可以极大地提高数据库的性能。索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。

2023-04-26 14:30:02 625

原创 每日刷题记录(十七)

用head表示原始链表的头节点,新的链表的第二个节点,用newHead表示新的链表的头节点,原始链表的第二个节点,则原始链表中的其余节点的头节点是newHead.next。例如,当S=“abc"时,考虑字母 “a”, “b”, “c”,初始令 ans=[”"],依次更新 ans = [“a”, “A”],ans=[“ab”, “Ab”, “aB”, “AB”], ans=[“abc”,“Abc”, “aBc”, “ABc”, “abC”, “AbC”, “aBC”, “ABC”]。返回 已排序的字符串。

2023-04-22 16:21:44 2091

原创 自动化测试框架之unittest

自动化的测试中, 对于每个单独的case来说,一个case的执行结果中, 必然会有期望结果与实际结果, 来判断该case是通过还是失败, 在unittest 的库中提供了大量的实用方法来检查预期值与实际值, 来验证case的结果, 一般来说, 检查条件大体分为等价性, 逻辑比较以及其他, 如果给定的断言通过, 测试会继续执行到下一行的代码, 如果断言失败, 对应的case测试会立即停止或者生成错误信息( 一般打印错误信息即可) ,但是不要影响其他的case执行。单元测试一般会提供丰富的断言方法。

2023-04-19 16:43:21 723

原创 MySQL数据库之表的增删改查(进阶)

需要满足:使用 GROUP BY 进行分组查询时,SELECT 指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT 中则必须包含在聚合函数中。在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。使用UNION和UNION ALL时,前后查询的结果集中,字段需要一致。GROUP BY 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用HAVING。当使用该操作符时,不会去掉结果集中的重复行。

2023-04-17 18:59:55 578

原创 每日刷题记录(十六)

本题为简单的动态规划问题,动态规划转移方程:arr(i, j) = arr(i-1, j) + arr(i, j-1),先将arr[i][0]和arr[0][j]初始化为1,然后根据转移方程求得arr[i][j],返回arr[m-1][n-1]由于每一步只能移动到下一行「相邻的节点」上,因此要想走到位置 (i,j) ,上一步就只能在位置 (i−1,j−1) 或者位置 (i−1,j)。最终的答案即为 f[n-1][0] 到 f[n−1][n−1] 中的最小值,其中 n 是三角形的行数。

2023-04-17 17:13:52 638 1

原创 MySQL数据库之表的增删改查(基础)

按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页。为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称。

2023-04-16 17:42:45 607

原创 每日刷题记录(十五)

我们的目标是到达数组的最后一个位置,因此我们可以先找最后一步跳跃前所在的位置,该位置通过跳跃能够到达最后一个位置,该位置的条件为i+nums[i] > nums.length-1,然后继续找最后一步跳跃前所在的位置,直到找到数组的开始位置。在[1,9]范围内使用4个不同的数字,我们可以得到的最小和是1+2+3+4 = 10,因为10 > 1,没有有效的组合。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输出: [[1,2,6], [1,3,5], [2,3,4]]

2023-04-16 15:53:42 1257 3

原创 MySQL数据库基础

说明: 数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除。可以使用comment增加字段说明。use 数据库名;

2023-04-12 17:53:17 639

原创 自动化测试框架selenium之webdriver

如果元素定位不到,则它以轮询的方式不断的判断元素是否被定位到。下拉框是我们最常见的一种页面元素,对于一般的元素,我们只需要一次就定位,但下拉框里的内容需要进行两次定位,先定位到下拉框对下拉框进行操作后,再定位到下拉框内里的选项。在这里要注意的是,不是所有的元素用 tag name或者 class name来定位元素,首先要保证该元素的这两种属性在页面上是唯一的,才能够准确的定位。如果页面元素比较多,利用元素的属性无法准确的定位这个元素的时候,我们可以先定位元素所在的div块,再去定位这个元素。

2023-04-12 17:26:50 6682 1

原创 每日刷题记录(十四)

输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]假如 n=4, k=2 ,即要在 [1, 2, 3, 4] 中求 2 个数的组合。

2023-04-12 10:57:01 569

原创 自动化测试框架之selenium

降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入,这可能是自动化测试最主要的任务,特别是在程序修改比较频繁,效果是非常明显的,自动化测试前期人力投入较多,但后期进入维护期后,可节省大量人力,而手工测试后期需要增加大量人力用于回归测试。UI层的测试框架比较多,比如Windows客户端测试的AutoIT,web测试的selenium以及TestPlant ,eggPlant,Robot framework,QTP等。自动化测试包括UI自动化,接口自动化,单元测试自动化。

2023-04-11 16:18:23 663

原创 每日刷题记录(十三)

由于该密码包含大小写字母、数字和符号,所以奖励部分得5分,经统计得该密码的密码强度为25+20+20+25+5=95分。给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。对长度,字母,数字,符号单独判断,最后把所有的单项值根据题目要求相加,输出对应的安全级别。

2023-04-10 15:16:15 454

原创 Hadoop伪分布环境搭建(超详细)

22.编辑/opt/hadoop/etc/hadoop/mapred-site.xml文件,部分截图如下。13.编辑/opt/hadoop/etc/hadoop/core-site.xml文件,部分截图如下。17.编辑/opt/hadoop/etc/hadoop/hdfs-site.xml文件,部分截图如下。7.编辑/opt/hadoop/etc/hadoop/hadoop-env.sh文件,部分截图如下。30.编辑/opt/hadoop/etc/hadoop/slaves文件。

2023-04-09 21:53:13 1191

原创 每日刷题记录(十二)

因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。输入第一行为字符串个数n(n ≤ 100) 接下来的n行,每行一个字符串,字符串长度均小于100,均由小写字母组成。正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输出A和B的最小公倍数。

2023-04-09 21:29:20 860

原创 每日刷题记录(十一)

给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根,小易想知道最多可以放多少块蛋糕在网格盒子里。例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3。输入: [1,2,3,2,2,2,5,4,2]

2023-04-08 14:04:15 571

原创 每日刷题记录(十)

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2。team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10.team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7.

2023-04-05 16:47:04 622

原创 Java数据结构之Lambda表达式

lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式本质是一个匿名函数,函数的方法是:返回值 方法名 参数列表 方法体。在,Lambda表达式中我们只需要关心:参数列表 方法体。为了能够让Lambda和Java的集合类集更好的一起使用,集合当中,也新增了部分接口,以便与Lambda表达式对接。该方法表示:对Map中的每个映射执行action指定的操作。该方法表示:对容器中的每个元素执行action指定的动作。

2023-04-05 12:43:20 573

原创 Java数据结构之枚举

枚举是在JDK1.5以后引入的。主要用途是:将一组常量组织起来场景:错误状态码,消息类型,颜色的划分,状态机等等…本质:是 java.lang.Enum 的子类,也就是说,自己写的枚举类,就算没有显示的继承 Enum ,但是其默认继承了这个类。

2023-04-05 11:53:37 357

原创 Java数据结构之反射

Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java的反射(reflection)机制。

2023-04-04 16:58:38 378

原创 Java数据结构之哈希表

线性探测的缺陷是产生冲突的数据堆积在一块,这与其找下一个空位置有关系,因为找空位置的方式就是挨着往后逐个去找,因此二次探测为了避免该问题,找下一个空位置的方法为: = ( + )% m, 或者:= ( - )% m。虽然哈希表一直在和冲突做斗争,但在实际使用过程中,哈希表的冲突率是不高的,冲突个数是可控的,也就是每个桶中的链表的长度是一个常数,所以,通常意义下,我们认为。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( ),搜索的效率取决于搜索过程中元素的比较次数。该方式即为哈希(散列)方法,

2023-04-03 14:57:11 286

原创 Java数据结构之二叉搜索树

对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深度的函数,即结点越深,则比较次数越多。插入和删除操作都必须先查找,查找效率代表了二叉搜索树中各个操作的性能。

2023-04-02 11:53:45 267

原创 Java数据结构之Map和Set

一般把搜索的数据称为关键字(Key),和关键字对应的称为值(Value),将其称之为Key-value的键值对,所以。Set与Map主要的不同有两点:Set是继承自Collection的接口类,Set中只存储了Key。,该内部类中主要提供了<key, value>的获取,value的设置以及Key的比较方式。而Map中存储的就是key-value的键值对,Set中只存储了Key。:Map.Entry<K,V>并没有提供设置Key的方法。

2023-04-01 16:04:25 123

原创 Java数据结构之排序

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

2023-04-01 12:11:36 413

原创 每日刷题记录(九)

新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。返回复制链表的头节点。: “the”, “is”, “sunny” 和 “day” 是出现次数最多的四个单词,出现次数依次为 4, 3, 2 和 1 次。给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]

2023-03-29 20:59:19 173

原创 Java数据结构之优先级队列(堆)

Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。将剩余N-K个元素依次与堆顶元素比完之后,堆中剩余的K个元素就是所求的前K个最小或者最大的元素。TOP-K问题:即求数据结合中前K个最大的元素或者最小的元素,一般情况下数据量都比较大。,kn-1},把它的所有。

2023-03-29 16:35:59 567

原创 Java数据结构之二叉树

设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,如果按照某种规则进行约定,则每个人对于同一棵树的遍历结果肯定是相同的。:若一个结点含有子结点,则这个结点称为其子结点的父结点;非终端结点或分支结点:度不为0的结点;:一个结点含有的子树的根结点称为该结点的子结点;

2023-03-28 21:15:41 87

原创 JavaSE之Java对象的比较

在Java中,基本类型的对象可以直接比较大小。1.2 对象比较的问题c1、c2和c3分别是Card类型的引用变量,上述代码在比较编译时:c1 > c2 编译失败c1== c2 编译成功c1 < c2 编译失败从编译结果可以看出,Java中引用类型的变量不能直接按照 > 或者 < 方式进行比较。 那为什么 = = 可以比较?因为:对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equal方法,而 = = 默认情况下调用的就是equal方法,但是该方法的比较规则是:没有

2023-03-28 18:02:34 49

原创 Java数据结构之栈和队列

栈区:线程私有的,栈区中存放的是函数调用相关的一些信息,主要是栈帧。当中的元素(栈帧)是按照数据结构中的栈的特性来实现的。每个方法在运行时,jvm都会创建一个栈帧,然后将栈帧压入到虚拟机栈中,当方法调用结束时,该方法对应的栈帧会从虚拟机栈中出栈。从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的。:后进先出的一种数据结构——在java的集合中有对应的实现—Stack,Stack在实现时继承了Vector。

2023-03-28 14:48:33 239

原创 Java数据结构之LinkedList与链表

LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。,效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。因此:java集合中又引入了LinkedList,即链表结构。由于其底层是一段连续空间,当在。存储结构,数据元素的。

2023-03-27 21:56:05 152

原创 每日刷题(八)

输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1。输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4。输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]

2023-03-27 17:44:35 53

原创 每日刷题(七)

构造一个递归函数,通过「同步移动」两个指针的方法来遍历这棵树,p 指针和 q 指针一开始都指向这棵树的根,随后 p 右移时,q 左移,p 左移时,q 右移。否则,返回 false。输入:root = [3,4,5,1,2,null,null,null,null,0], subRoot = [4,1,2]输入:root = [3,4,5,1,2], subRoot = [4,1,2]输入:root = [1,2,2,3,3,null,null,4,4]输入:p = [1,2,1], q = [1,1,2]

2023-03-27 13:42:00 46

原创 每日刷题(六)

给你二叉树的根节点 root ,返回其节点值的 层序遍历。输入:root = [3,9,20,null,null,15,7]给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历。给定一个二叉树的根节点 root ,返回 它的 中序 遍历。给定二叉树 [3,9,20,null,null,15,7],二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。输入:root = [1,null,2,3]输入:root = [1,null,2,3]输出:[[3],[9,20],[15,7]]

2023-03-26 13:59:51 36

原创 Java数据结构之ArrayList与顺序表

ArrayList是一个动态类型的顺序表,即:在插入元素的过程中会自动扩容:以下是ArrayList源码中扩容方式。

2023-03-26 11:38:25 98

原创 Java数据结构之泛型

不可以,因为添加元素的时候,我们知道list引用的对象肯定是Person或者Person的父类的集合,我们能够确定此时存储的元素的最小粒度比Person小的都可以。但是,你读取的时候,你知道是读取到的是哪个子类吗?通俗讲就是:返回的Object数组里面,可能存放的是任何的数据类型,可能是String,可能是Person,运行的时候,直接转给Intefer类型的数组,编译器认为是不安全的。1、泛型 T 是确定的类型,一旦你传了我就定下来了,而通配符则更为灵活或者说是不确定,更多的是用于扩充参数的范围.

2023-03-25 20:36:42 125

空空如也

空空如也

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

TA关注的人

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