- 博客(62)
- 收藏
- 关注
原创 我的测试成长心得
今天特别不想工作>_<,所以来简单聊聊我进入测试行业的一些改变,改文章适合初级测试开发工程师,内容以几件事来展开讲吧。首先简单讲讲我的工作经历吧,我到现在的工作年限比这个 疫情持续的时间还要短:2019年11月开始实习,实习到11月5号,回学校做毕设,那个春节,疫情开始了,我偷偷的1月又跑去完成了剩下1个月的实习;2020年7月,开始步入社会,正式回到之前实习的公司,开始我作为测试开发工程师的职业生涯,这个时候的我充满了干劲,觉得给我一根杠杆,我就真的能撬动地球;2021年7月底,从
2022-04-14 19:57:55
2086
1
原创 测试方案概述
测试同学平时工作中最常遇到的事情就是编写测试用例,但很少见到测试方案。测试方案是抽象的,描述的是整体模型,总体策略考虑从哪些方面进行测试,像大树的主体延伸到枝干;测试用例是具体的,它依据测试方案产生,每一条用例是实际的、可操作的,像大树的细枝末节和叶子。无论是手工测试,还是自动化测试,测试用例/测试方案是基础。只有设计好测试用例,才能保证测试的覆盖率。一般的测试方案是怎么产生的呢,具体要考虑哪些点,通过一个具体例子我们来分析分析。一、测试方案数据来源一般我们的需求分为两大类:老业务迭代需求、全...
2022-04-13 17:57:22
1082
原创 测试日常 - 分页测试怎么测
测试日常 - 分页测试怎么测参考:http://www.51testing.com/html/12/n-214012.html 作为测试行业的新鲜血液,设计测试用例时经常听到前辈们说 搜索/查询的新接口注意分页处理,关注搜索/查询的内容是否分页展示正常,数据是否分页展示正确; 因为没有踩过坑,自我感觉,分页是个很小的点,开发大哥肯定能考虑的比我一个新人全面,结果就栽在了分页上; 问题描述:一般分页查询,会有固定的 pageNo 和 pageSize,后端没做分页,当前端搜索的内容超过默认的pa
2021-03-11 17:38:44
3552
原创 《Java并发编程的艺术》-- Java并发机制的底层实现原理
前言:Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所致用的并发机制依赖于JVM的实现和CPU的指令。volatile的应用synchronized的实现原理与应用原子操作的实现原理...
2019-08-12 18:55:24
175
原创 《Java并发编程的艺术》-- 并发编程的挑战
并发编程遇到的问题及解决方案:上下文切换问题:CPU通过给每个线程分配CPU时间片来实现多线程执行代码,时间片是CPU分配给各个线程的时间,由于时间片非常短,CPU不停的切换线程执行,让用户感到多个线程是同时执行的。当一个任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便再加载到这个任务时能继续执行。任务从保存到加载的过程,叫做上下文切换。结论1:上下文切换...
2019-08-07 14:47:03
437
原创 Linux -- 定位Java进程占用系统资源使用率高的问题(CPU和内存使用率)
首先我们来认识一些Linux命令:ps : 查看进程的PID号;top -p + PID号 :查看指定PID进程的资源使用情况;top -Hp + PID号 :查看指定PID进程里面所有线程的调用栈信息jstack + 进程PID号: 输出当前Java进程所有线程的调用栈信息;进行定位:使用top命令查看占用资源最高的是哪个进程,记录它的PID号;使用 top -Hp + PID...
2019-08-07 09:05:16
519
原创 Linux -- 解决死锁问题
使用管理员权限执行命令(因为我的.java文件是由管理员创建的);使用 jps 命令查询进程ID,jstack 命令查询进程的堆栈信息;找到 waiting 、wait for字段;根据指引找寻 .java文件中的对应行,并根据具体情况解决死锁总结:jstack打印java进程所有线程的调用栈信息+相应的源代码的分析;寻找 wait for… + 等待的锁资源的地址,wait...
2019-08-07 08:42:35
1540
原创 《剑指Offer》-- 数组中出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。**解题思路:**利用hashMap存储键值对的特性, key记录数字,value记录每个数字出现的次数,具体实现如下:代码实现:import java.util.HashM...
2019-07-07 09:25:45
129
原创 Java -- ConcurrentHashMap相关的几个问题
注:前四题都是在JDK1.7的基础上进行解答,部分图是从一些大牛博客上参考的。参考资料:https://blog.csdn.net/jjc120074203/article/details/78625433《Java并发编程的艺术》 方腾飞 魏鹏 程晓明1、ConcurrentHashMap底层数据结构是什么?答:底层数据结构是:数组+数组+链表解释:底层结构图解(图1-1):...
2019-04-25 22:46:18
307
原创 《剑指Offer》-- 从上往下打印二叉树
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:将树分为若干个子树,每个子树都是由头节点和左右子节点构成;遍历一个小的子树,判断是否有头节点,再进行递归就可以了。import java.util.ArrayList;class TreeNode { int val = 0; TreeNode left = null; TreeNode ...
2019-03-31 11:41:50
139
转载 Java -- IO流 之 SequenceInputStream
转载地址:https://mp.weixin.qq.com/s/C1a2ig6poXch4bdYocVStwhttps://mp.weixin.qq.com/s/_zWUFv_IZ5Jb8OUMmpO75ASequenceInputStream类在Java中IO流的体系结构图的位置为什么要引入SequenceInputStream类? 在软件的日常运行中,会生成一些日志文件,记录...
2019-03-28 21:11:50
414
原创 《剑指Offer》-- 调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路:创建 数组1 和 数组2;遍历整个 array数组,模2判断奇偶,奇数存在 数组1中,偶数存在数组2中;先将 数组1中的奇数放在 array数组 中,数组2 中的偶数排在后边;用 len1 len2 分别...
2019-03-20 20:37:59
247
原创 《剑指Offer》-- 链表中倒数第K个节点
题目:输入一个链表,输出该链表中倒数第k个结点。思路:判断头结点为空,或者k值小于等于 0,不符合,返回null;定义一个整型变量 count1 为 0,进行计数,计算链表长度;判断k值是否超过链表长度,若超过,则返回null;定义一个整型变量 count2 为 0,将cur重置为头结点,进行计数,一直遍历到(count2 - k +1)这正是倒数第k个节点;返回节点。图示:...
2019-03-20 20:19:56
222
原创 《剑指Offer》-- 旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。Java代码:import java.util.ArrayList;public class Solution...
2019-03-18 18:14:09
174
原创 《剑指Offer》-- 包含min函数的栈
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。Java 代码:import java.util.Stack;public class Solution { int usedSize = 0; int size = 10; int[] elem = new int[size]; publi...
2019-03-17 16:50:20
169
原创 《剑指Offer》-- 矩形覆盖
**题目:**我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?由图和数学归纳法可推断出:f(n)来表示种类总数,则f(n) = f(n-1) + f(n-2);通过对公式进行递归,可得出结果。代码:public class Solution { public int RectCover(int targe...
2019-03-17 15:56:20
153
原创 Java -- 银行家算法
参考:ttps://blog.csdn.net/u014634576/article/details/52600826一、测试类package operation.main;import java.util.Scanner;/** * @program: sadd * @description: 测试类 * @author: * @create: 2019-01-02 14:1...
2019-01-09 10:59:02
2547
3
转载 Java -- 字符串匹配算法
字符串匹配算法:就是给定两个串,查找另一个串是否在主串里面,在这里,我们讨论的时候主要用字符串来实现。什么是串?由零个或多个字符组成的有序序列:‘abcdef’串的长度:串中字符的数目成为串的长度空串:什么都没有;“ ”有空格的叫做空格串子串:子串包含空串和串本身子串在主串中的位置:一、BF算法https://blog.csdn.net/deepseazbw/...
2019-01-09 10:27:48
2775
原创 Java -- 使用Awt、Swing实现一个简历
代码:package awt.second;import javax.swing.*;import javax.swing.border.Border;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;/** * @program: sadd * @...
2018-12-09 18:45:37
1513
原创 Java -- 枚举
**温馨提示 :所有自定义的枚举类都默认继承 java.lang.Enum 类,本节内容结合 java.lang.Enum 类进行讲解,切勿混淆**1、定义一个枚举类2、枚举类不可以产生实例对象,因为自定义的枚举,都默认继承 Enum 类,且 Enum 类是抽象类,所以不可以产生实例Enum 类举个例子:3、switch 支持枚举类型执行结果4、En...
2018-11-23 11:54:52
697
原创 Java --泛型
首先,我们来写一个通用的算法,找到数组当中的最大值;可以看出,编译期间报错,不允许比较,那我们来试一下 compareTo() 方法;有代码可见,传入的数组类型是 Object 类型的,Object 类是 Java 中所有的类的父类,查看了一遍 Object 类的源码,发现:Object 类中并没有 compareTo() 方法,所以我们要实现 Compareable 接口,重写 com...
2018-11-19 20:59:29
99
原创 Java -- 反射
参考 :https://blog.csdn.net/sinat_38259539/article/details/71799078
2018-11-14 15:24:37
146
原创 Java面向对象 -- 迷宫
题目:如图所示是一迷宫,“0”表示路,“1”表示墙,只有路可以走,入口为左上角,出口为右下角,请用面向对象的思想找出迷宫的路。
2018-11-14 14:16:18
398
原创 Java面向对象 -- 图书管理系统
题目:利用抽象类、接口等实现简单的图书管理系统。整体布局Test 类package user.action;import java.util.Scanner;public class Test { public void choose() { while (true) { System.out.println("----------...
2018-11-13 21:34:58
7764
6
原创 Java面向对象牛刀小试 --石头剪刀布
题目 : 编写一个程序,实现人和电脑的猜拳比赛,要求:三局两胜首先写一个 Person 类package test1.java.xiaoyu;public class Person { //定义 score 属性 public static int score = 0; /** * addScore() 用来记录 Person 的分数 */...
2018-11-05 11:14:40
1252
原创 Java -- 密封类、抽象类、接口
首先,什么是密封类?可能有同学会说 :密封类当然就是“蜜蜂”类啊!你是在跟我开玩笑吗!!!密封类是被 final 关键字所修饰的类,兄dei~密封类的特点1、密封类不能用作基类;2、就算派生类也被final所修饰也不可以,兄dei~既然有密封类,那么肯定就有密封方法,那么什么是密封方法呢 ?注意 :被 final 修饰的方法是不能被 override(重写) ...
2018-11-01 18:02:48
1201
2
原创 Java初级 --单例模式
什么是单例模式 ?单例模式(SingleTon Pattern)是最简单的一种设计模式。单例模式的英文原话是 :Ensure a class has only one instance,and provided a global point of access to it.意思是 :确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式有哪些要求?1、单例...
2018-10-31 15:24:34
217
转载 多线程小题 ——哲学家就餐问题
一、分析问题哲学家从不交谈分析:1、筷子相当于临界资源(在一段时间内只允许一个进程访问的资源,如打印机)2、产生死锁的原因主要有2点: 1是竞争资源 ; 2是进程推进顺序不当3、资源加锁,用来保证在某个时刻,资源只能被一个程序或一段代码访问4、用附加规则解决哲学家进餐问题:为了预防死锁的产生,我们添加一条竞争规则:所有哲学家先竞争奇数号筷子,获得后才能去竞争偶数号筷子(由于5号哲学...
2018-10-10 16:17:58
853
转载 多线程小题
题目:编写程序,开启 3 个程序,这 3 个线程的 ID 分别是 A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出结果必须按 ABC 的顺序显示,如 ABCABC…以此递推代码:package train20181010;import java.util.concurrent.locks.Condition;import java.util.concurrent.lo...
2018-10-10 16:13:45
179
转载 多线程小题 —— 设计火车票模拟程序
题目 : 设计多线程程序:设计火车票模拟程序,假设火车站有100张票,6个售票窗口同时售票,用6个线程模拟6个窗口售票情况。要求打印:窗口 n (窗口编号 1~6 )出售车票编号 m( 1 ~ 100 )成功。代码:import java.util.Random;public class Ticket implements Runnable{ static int num; static...
2018-10-10 09:51:17
4640
3
转载 Java -- 多线程文件复制
题目描述:实现文件复制功能多线程实现文件从一个目录复制到另一个目录@param sourceFile : 给定源文件路径名@param desPath : 复制点文件路径代码:package fileio20180924;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFo...
2018-09-25 16:03:33
696
转载 Synchronized、 Volatile、ReentrantLock
Synchronized的实现原理:synchronized 的使用方式有如下几种:线程状态及状态转换:synchronized实现何时使用了自旋锁?在线程进入 ContentionList 时,即第一步操作前,线程在进入等待队列时首先进行自旋锁尝试获得锁,如果不成功再进入等待队列。synchronized原理-Java虚拟机的同步(Synchronization)是基于进入和退...
2018-09-19 15:57:32
1251
原创 Java -- 数字化婚姻配对尝试
题目:一、标题: 数字化婚姻配对尝试 二、题目: 建立一个模型,来模拟推导社会男女择偶过程。 为了模型简化,一个人的特性指标有三个,这里假设为财富、样貌、品格,每个指标均可取值1-100之间任意数字。同样也对这3项指标有自己的需求。这3个需求值取值范围都在1-98间,当然三者的和必须为100.所以任意一个人可以用以下数组来表述: G(A、B、C、A1、B1、C1)G代表男,M代表...
2018-08-05 23:05:31
2571
原创 Java -- 对一个文件的任意位置可以插入任何内容
题目:提供一个文件操作的方法,其需要实现功能:对一个文件的任意位置可以插入任何内容 提供一个文件操作的方法,其需要实现功能:对一个文件的任意位置可以插入任何内容 @param filePath:文件路径 @param postion:追加内容添加位置 @param contents:追加内容 public static void addContentsToFile(String file...
2018-08-04 16:30:23
6850
1
原创 Java -- 两集合求交集
题目:有两个有序的集合,集合的每个元素都是一段范围,求其交集,例如交集{[4,8],[9,13]}和{[6,12]}的交集是{[6,8],[9,12]} 两个有序的集合,集合的每个元素都是一段范围,求其交集 所求交集结果直接打印到输出终端 @param collects1:集合1 @param collects2:集合2 参数校验:集合内要有元素;0号下标小于1号下标p...
2018-08-04 16:20:48
6783
原创 Java--泛型(通配符)
通配符:表示当前类型可以是任何类型 它也会进行类型擦除的 擦除到ObjectObject ArrayList Number ArrayList Integer ArrayList 库的开发 : 写一个函数,打印容器内的元素 ArrayList:容器class GenericList{ //泛型写: p...
2018-06-01 18:03:00
133
原创 Java--泛型
一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。 泛型实现了参数化类型的概念,是代码可以应用于多种类型。“泛型”这个术语的意思是:“适用于许多许多的类型”。(Java编程思想) Java泛型的核心概念:告诉编译器想使用什么类型,然后编译器帮你处理一切细节。1、泛型的意义: a...
2018-06-01 17:56:49
134
原创 Java--反射
反射:通过class对象后- - >得到类的信息 首先,创建一个类:class Student{ private String name="caocao"; public int age=18; public Student(){//构造函数 System.out.println("Student.init!!"); } publ...
2018-05-27 17:12:33
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人