- 博客(68)
- 资源 (1)
- 收藏
- 关注
原创 GitHub push失败
remote: Support for password authentication was removed on August 13, 2021. !!!!!! GitHub将密码换成了token!!!!! 操作步骤:
2021-08-17 20:28:14
1900
原创 Selenium LoadRunner 自动化测试
1.什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估结构,将人为驱动的测试行为转化为机器执行的过程。 2.自动化测试的适用对象: ①需求变动不频繁 ②项目周期短 ③自动化脚本可以重复使用的 3.selenium特点: ①轻量级 ②支持多语言:ruby,python,java,c#等 ③支持多平台:windows Mac ④支持多浏览器:Firefox、IE、Chrome、Edge、Safari 、Oprea ⑤支持分布式测试
2021-08-12 09:19:01
805
3
原创 测试的分类
一、按照开发阶段划分: 单元测试、集成测试、系统测试、验收测试 测试金字塔模型: ①从下到上三层测试,投入相同的时间,人力资源等,回报率(产出)越来越低 ②从下到上,测试的效率越来越低 ③从下到上,定位问题越来越难 (1)单元测试 Junit 测试阶段:编码前(TDD)编码后 测试内容:单元接口测试,局部数据结构测试,边界测试,路径测试,错误处理测试 测试人员:白盒测试工程师或者开发工程师 (2)集成测试:按照一定的策略把单元模块组装起来 测试阶段:一般在单元测试之后进行 测试.
2021-08-12 08:37:12
950
原创 测试概念篇
1.什么是软件测试? 验证软件是否满足用户的需求。 2.软件测试和研发的区别? 即就是测试和调试的区别: (1)目的不同:①软件测试是检查软件的质量(以需求为标准) ②软件调试是开发人员为了检查程序是否实现了开发人员想让程序实现的功能。 人员不一样:①软件测试:黑白盒测试工程师,开发人员(单元测试/白盒测试) ②软件调试:开发人员 阶段不同:...
2021-08-11 21:10:58
241
原创 JVM java虚拟机
JVM:Java Virtual Machine 一、 Java进程启动的步骤: (1)初始化VM参数 (2)创建一个java虚拟机,并启动 (3)入口类类加载,java虚拟机执行main方法 (4)启动一些守护线程 二、类加载:如果一个类没有发送类加载,要先执行类加载 加载的时机: (1)new 对象 (2)读写静态变量 (3)调写静态方法 (4)父类的类加载:子类要初始化加载,如果父类还没有类加载,则先执行父类的类加载 (5)主函数的类:java类名启动入口类 类加载要做.
2021-08-11 17:40:01
203
原创 线程池 Java
1.作用: 不用每次执行任务时,都会创建线程(会真实创建系统级别的线程,比较耗时,销毁也是),而是使用线程池中的线程来进行复用。 2.ThreadPoolExecutor每个参数的含义/作用: ExecutorService pool = new ThreadPoolExecutor(参数); corePoolSize:4 核心线程数 maximumPoolSize:10 最大线程数 keepAliveTime:60 空闲时间数量 TimeUnit,SECONDS
2021-08-11 09:10:19
151
原创 线程安全 Java
一、多线程安全问题的原因: 1.代码层面: 存在多线程临界资源;多线程对共享变量的操作(有一个写操作就存在线程安全问题) 2.底层原因: 1)原子性 多行代码执行,执行时是一组不可再分的最小单位。 多个线程同时并发并行执行代码指令,执行时,可能时一个线程操作一个共享变量,是有前后依赖关系,指令之间有其他线程的操作,就会导致线程不安全。 举例一些特殊的非原子性操作: ① n++,n--,++n,--n 分解为三步:a.从主存读取变量值 b.修改 c.写...
2021-08-10 21:12:15
164
原创 多线程 Java
底层实现: (1)内核线程:Java就是基于内核线程中的轻量级进程实现 系统内核管理线程(KLT),内核保存线程的状态和上下文信息,线程阻塞不会引起进程阻塞。在多处理器系统上,多线程在多处理器上并行运行。线程的创建、调度和管理由内核完成,效率比ULT要慢,比进程操作快。也就是操作系统管理。 (2)用户线程 用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/内核态切换,速度快。内核对ULT无感知,线程阻塞则进程(包括它的所有线程)阻塞。也就是说用户
2021-08-10 15:27:51
155
原创 网络知识点
1.什么是协议? 网络数据传输,都要遵循的约定和规则。最终体现为网络传输数据的格式。 2.网络分层 OSI七层模型 属于网络设计分层。最终没有落地,最终是按照TCP/IP五层或四层模型落地 分层 名称 软硬件 说明 7 应用层 应用程序这一层 应用程序要有一个应用层的协议,来传输数据 6 表示层 没落地 表示传输数据的类型:文字、图片、视频等 5 会话层 没落地 用来标识一次会话(长连接就是建立连接后没有断开都是一个
2021-08-10 10:09:31
173
原创 Java Web 知识点总汇(自用,欢迎补充)
1.URL格式: 本机域名:localhost 本机ip:127.0.0.1 2.maven如何查找依赖包 首先当前项目查找依赖包会取本地仓库当中查找,如果查找到就加载到maven,如果没有就取远程仓库查找,或者网络下载。 3.HTTP协议: HTTP 是一种超文本传输协议(Hypertext Transfer Protocol) 由客户端向服务端发送数据,客户端浏览器封装数据为http格式请求,将请求发送到服务端,服务端分用/解析数据,处理请求,再封装成http响应发送给...
2021-08-09 15:39:21
395
原创 HashMap的实现
HashMap是Map接口的实例化,存放<key,value>。 特点: 1.其中键值对的key值是唯一的,value的值是可以重复的。 2.在插入键值对时,key不能为空,否则就会抛出NullPointerException异常,但是value可以为空。 3.HashMap中键值对的key不能直接修改,value可以修改,如果要修改key,只能先将该key删除掉,然后再来进行重新插入。 底层实现:jdk1.7 链表+数组 jdk1.8以后 链表+数组+红黑树 HashMap通.
2021-08-09 10:57:03
289
原创 浏览器输入一个URL后会发生什么?
例如:由某个主机输入 http://baidu.com 1.首先基于DNS域名转为IP,端口默认为80端口。 2.封装: (1)应用层:应用程序(浏览器)封装请求为HTTP协议数据 (2)传输层:操作系统封装TCP首部(TCP协议数据),包含端口号 。首先要通过TCP三次握手建立于服务器端的连接。 (3)网络层 :操作系统封装IP首部(IP协议的数据),包含IP地址。 (4)数据链路层:封装以太网协议数据,包含mac地址。 在本层中: 需要计算下一跳设备的mac: 要首先通过子网掩码...
2021-08-09 09:42:16
227
原创 ArrayList与LinkedList的区别
ArrayList 与 LinkedList都实现了List的接口 不同点: (1) ArrayList的底层实现是数组 。对元素进行随机访问时的时间复杂度是O(1).而进行插入、删除等操作的时候,时间复杂度为O(N)(最坏的情况)。 LinkedList的底层实现是链表。查找某个元素是的时间复杂度是O(N),插入、删除等操作的时间复杂度是O(1). (2) 相比于ArrayList,LinkedList的插入,删除操作速度更快,不需要像数组重新计算大小或者是更新索引。 LinkedList比
2021-08-09 08:50:09
150
翻译 二叉树练习题(基础)
1. 二叉树的前序遍历。 解题思路: 使用递归的方法,先访问根节点、再访问左子树、再访问右子树。 代码如下: class Node{ String val; Node left; Node right; public Node(String val){ this.val=val; } } public static void preOrder(Node root){ if (root == null)...
2021-08-04 23:19:29
1388
原创 LoadRunner 启用Chrome浏览器加载失败问题
刚开始学习loadrunner就遇到了浏览器加载失败的问题,查了很多解决办法,都没有解决。 最后还是无意间解决的。 在Recording Options当中 Advanced当中勾选下图对应选项。 更改Capture level 为Socket level and WinNet level data 最终就可以正常录制脚本啦! ...
2021-08-04 22:47:24
1345
原创 用栈实现队列、用队列实现栈
1.用栈实现队列 import java.util.Stack; public class MyQueue { Stack<Integer> A=new Stack<>(); Stack<Integer> B=new Stack<>(); public MyQueue(){ } public void push(int x){ // 入队列的时候, 需要先把 B 中的元素都放到 A 中, 再往 A 中插入新
2021-08-01 22:35:51
116
原创 括号的匹配问题
题目详情: 给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 示例 1: 输入:s = "()" 输出:true 示例2: 输入:s = "()[]..
2021-08-01 22:25:52
420
翻译 链表练习题(二)
1.在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 解题思路: 首先创建一个带傀儡节点的新链表来存放没有重复节点的链表。 因为题目已知是排序的链表,所以只需要判断相邻两节点是否相等,就可以判断是否存在重复节点并且删除。 如果有重复节点就跳过,如果不是重复节点就插入到新链表当中。 class ListNode{ int val=0; ListNode next=null; public ListNode(int val){
2021-07-31 15:31:31
154
原创 链表练习题(一)
1.删除链表中等于给定值val的所有节点。 思路:遍历链表,查找到给定值节点,删除改节点,即使改节点的上一个节点指向下下一个节点。 class ListNode{ int val=0; ListNode next=null; public ListNode(){ } public ListNode(int val){ this.val=val; this.next=null; } public ListNode
2021-07-30 21:11:41
257
原创 手机APP入门—常见功能点测试(有参考)
01安装和卸载 应用的安装和卸载在任何一款APP中都属于最基本功能。一旦出错,就属于优先级为紧要Critical的缺陷。因此APP的安装和卸载应作为一个测试点多加重视。主要关注以下几个方面:▲ 应用是否可以正常安装(命令行安装(测试人员);豌豆荚/手机助手,应用商店等第三方软件安装;apk/ipa安装包安装)▲ 应用是否可以在iOS和Android不同系统,版本,机型上进行安装(有的系统版本过低,应用不能适配)(安装兼容性的测试)▲ 安装过程中是否能暂停,再...
2021-06-15 22:28:34
379
原创 TCP三次握手四次挥手流程
三次握手流程(建立连接) (1)客户端发送SYN(建立连接的标志位)+SEQ_NO(序号)到服务器 这里的SYN是客户端到服务端的连接,申请jian'l
2021-06-10 14:59:23
161
原创 如何定位URL路径资源(WEB)
浏览器输入一个http协议的URL,如何定位服务资源? URL:统一资源定位符 互联网上用于指定信息位置的表示方法,每一个不同的文件都有它唯一的URL。 具体形式如下图: URL最大长度为2048,大小写敏感。 举例:http://localhost:8080/web/web.html http 是一种网络传输协议,又名超文本传输协议,默认端口号为80。此外还有另外一种协议https,是http的加密传输,s即SSL。默认端口号为:443。 :// 是分隔符。 localhost..
2021-04-17 22:42:48
508
原创 数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 解题思路: 先给数组排序,取中间的数字,如果这个数在数组中出现超过一半,则存在;反之就不存在。 public int MoreThanHalfNum_Solution(int [] array) { Arrays.sort(array); .
2021-04-15 10:27:05
86
原创 输出最长字符串(Java)
题目描述: 读入一个字符串str,输出字符串str中连续最长的数字串 输入描述: 每个测试输入包含1个测试用例,一个字符串str,长度不超过255。 输出描述: 在一行内输出str中里连续最长的数字串和长度。 输入样例: abcd12345ed125ss123456789 输出样例: 123456789 解题思路: 首先将输入的字符串转换为字符数组 将符合的数字添加入创建好的一个StringBuffer对象中,如果不是数字就用空格代替,将空格也添加到StingBuffer对象中。 创建.
2021-04-15 10:01:41
2345
原创 逆置字符串,标点符号不变(Java)
题目描述 将一句话的单词进行倒置,标点不倒置。 比如Ilikebeijing.经过函数后变为:beijing.likeI 输入描述: 每个测试输入包含1个测试用例:Ilikebeijing.输入用例长度不超过100 输出描述: 依次输出倒置之后的字符串,以空格分割 示例: 输入: Ilikebeijing. 输出: beijing.likeI 解题思路: 每个单词都是用空格隔开的,那么我们可以利用 split(“ ”)函数分割这个字符串,存放在字符数组中,再倒序打...
2021-04-15 09:37:59
655
原创 排序子序列(Java)
牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列. 如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2 输入描述: 输入的第一行为一个正整数n(1≤n≤10^5) 第二行包括n个整数A_i(1≤A_i≤10^9),表示数组A的每个数字。 输出描述: 输出...
2021-04-15 09:32:34
362
原创 实现ToLowerCase函数 (Java)
题目描述: 实现函数ToLowerCase(),该函数接收一个字符串参数str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。 示例1: 输入:KUN 输出:kun 示例2:CAiXuKun 输出:caixukun 解题思路: 我们知道大小写字符的ASCⅠⅠ相差32,A-Z:65-90 a-z:97-122 我们只需要遍历字符数组,判断当前字母如果是大写就转换成小写即可。 参考代码: class Solution { public String toLowerCa...
2021-04-13 14:55:13
1071
原创 删除公共字符串(Java)
题目描述: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”Theyarestudents.”和”aeiou”,则删除之后的第一个字符串变成”Thyrstdnts.” 输入描述: 每个测试输入包含2个字符串 输出描述: 输出删除后的字符串 示例: 输入: Theyarestudents.aeiou 输出: Thyrstdnts. 解题思路: 1.将第一个字符串转换为字符数组,然后在第二个字符串中判断是否包含第一个字符串中的内容,如果不包含直接输出...
2021-04-13 14:43:18
300
原创 组队竞赛(Java)
题目描述 牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 例如: 一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3 一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3 一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2 为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。 如样例所示: 如果牛牛把6个队员划分到两个队.
2021-04-13 14:34:36
680
1
原创 Map和Set
1.概念 Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。 我们常见的搜索方式有:直接遍历和二分查找。但是这两种排序更合适静态类型的查找,也就是说不会对所排区间进行插入、删除等操作,而现实中的查找,更多的会涉及到插入、删除这些操作,比如通讯录。那么我们就会需要动态查找,即使用Map和Set。 2.模型 一般把搜索的数据称为关键字(Key),和关键字对应的称为值(Value),将其称之为Key-value的键值对,所以模型会有两种: 1. 纯 k.
2021-03-30 22:08:47
139
原创 排序Java (插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序)
本文涉及到的排序算法,均属于原地排序。 插入排序 整个区间被分为:有序区间 和 无序区间。 每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入。 参考代码如下: public static void insertSort(int[] arr) { // [0, bound) 是已排序区间. // [bound, length) 待排序区间. int bound = 1; for (; bound < arr.leng
2021-03-27 21:57:05
279
原创 优先级队列(堆)
1.优先级队列 1.1概念 前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列,该中场景下,使用队列显然不合适。 在这种情况下,我们的数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加 新的对象。这种数据结构就是优先级队列(Priority Queue)。 1.3常用接口 1.2.1 PriorityQueue的特性 Java集合框架中提供了PriorityQueue和PriorityB
2021-03-21 20:39:04
227
原创 二叉树先序、中序、后序、层序遍历非递归实现
一、先序遍历非递归实现 1.先创建一个栈 2.把根节点放入栈中 3.循环取栈顶元素 4.访问这个元素,并出栈 5.把当前元素的右子树入栈 6.把当前元素的左子树入栈 7.循环该过程 public static void preOrderNoR(TreeNode root){ if(root==null){ return; } //1.创建一个栈 Stack<TreeNode> sta
2021-03-21 17:19:07
351
原创 二叉树(Java)
一、二叉树 1.1概念 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 二叉树的特点: 1. 每个结点最多有两棵子树,即二叉树不存在度大于 2 的结点。 2. 二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树。 1.2二叉树的基本形态 上图给出了几种特殊的二叉树形态,从左往右依次是:空树、只有根节点的二叉树、节点只有左子树、节点只有右子树、节点的左右子树均存在,一般二叉树都是由上述...
2021-03-14 20:47:27
250
原创 栈和队列
1.栈(Stack) 1.1 概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据在栈顶。 1.2 实现 利用顺序表实现。即使用 尾插+尾删。 利用链表实现,则头尾皆可 //用顺序表实现 public class MyStack { priv
2021-03-09 21:57:55
163
原创 Java实现双向链表的增删查改
1.插入节点 头插 2.插入节点 尾插 3.指定位置插入节点 4.删除头节点 5.删除尾节点 6.根据下标删除节点 7.根据值删除节点 8.根据下标查找节点位置 9.查找节点的值 10.修改节点的值 import java.util.Scanner; class Node{ int val; Node prev=null; Node next=null; public Node(int val){ this.val=val; } @Ov
2021-03-08 11:01:01
127
原创 Java 实现顺序表的基础操作(增删查改)
1.从尾部插入数据 2.从中间任意位置插入位置 3.按照下标位置删除元素,返回结果是被删除的元素 4.按照元素的内容来删除元素,返回true/false 5.根据下标获取元素 6.根据下标获取元素 7.判断元素是否存在 8.查找元素的位置(从前往后) 9.查找元素的位置(从后往前) 10.清空顺序表 11.求表中的有效元素个数 12.判断是否为空表 注: 1.打印的时候,需要重写toString方法 2.如果表长不够,需要扩容 具体实现如下: package Test0201; import java.
2021-02-02 16:37:49
506
2
原创 Java 实现链表的基础操作(1.通过遍历达到查找元素的目的)
已知一条链表,不知道其长度的情况下: 通过遍历,打印链表的每个元素。 通过遍历,找到链表的最后一个结点。 通过遍历,找到链表的倒数第二个结点。 通过遍历,找到链表的第 n 个结点。(链表的长度 >= n) 通过遍历,计算链表中元素的个数。 通过遍历,找到链表中是否包含某个元素。 具体实现如下: package Test_0202; public class Node { public int val; public Node next=null;
2021-02-02 16:26:29
311
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅