自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 哈希冲突

在保存元素不是固定范围时,哈希冲突有可能避免吗?不能避免;因为存储的元素范围远远大于数组的长度但可以尽可能的减少冲突,那么如何减少?数组大小用素数(Java中不太用) 当 index = hashValue % arr.length 时hash函数要尽可能的均匀如何解决hash冲突?线性探测 拉链法(Java的hashMap选用这种)1. 线性探测法解决hash冲突例:int[] arr = new int[11]存放元素:7,31,5,8,...

2021-05-16 11:15:28 351 1

原创 senlium自动化测试

什么是自动化测试?按照设定好的条件或者步骤让机器(电脑)运行自动化测试的工具?QTP(quick Test Professional) HP 安装包很大 收费jmeter 开源工具 性能测试 接口测试appium 手机APP自动化测试工具 macaca monkeyselenium UI自动化 免费 多语言(java,C,C++,ruby,Python,JavaScript) 多平台(Windows,Mac)多浏览器(Chrome,Firefox,edge,Opera,IE...

2021-05-15 10:40:30 670

原创 搜索树的应用——Map和Set接口

MapSet方法名说明boolean add(E e)添加元素(但是重复元素不能添加成功)–O(lon(n))void clear()清空集合 --O(1)int size()返回set中的元素个数boolean isEmpty()检测set是否为空boolean remove(Object o)删除集合中的o–O(lon(n))boolean contains(Object o)判断o是否在集合中–O(lon(n))retainAll

2021-05-12 22:34:25 142

原创 测试分类总结

一、按开发阶段分测试金字塔【注】SDK,全称:SoftWare DeveLopment Kit,一般是指软件工程师特定的软件包建立的开发工具集合。 ROI:投入产出比 为什么测试金字塔越往上投入阐述比越小?测试人员投入相同的精力,测试成果越来越小越往上定位问题越困难 越往上测试效率越低单元测试(模块测试)单元测试是对软件组成单元进行测试目的:检验软件基本组成单位的正确性测试的对象是软件设计的最小单位:模块测试阶段:编码后或编码前(TDD) ...

2021-04-18 19:43:32 326

原创 测试用例方法练习巩固--(等价类和边界值、因果图、场景设计)

总体的设计测试用例的方法:基于需求设计测试用例黑盒测试:黑盒测试设计测试用例的方法?等价类,边界值、因果图、正交法、场景设计、错误猜测白盒测试:1.根据等价类和边界值的思想设计测试用例信息注册:注册名字和年龄要求:1.姓名:1-20个字符,不能重复,不能包含数字,不能为空 2.年龄:18-60之间的整数,不能为空网易云笔记的登录...

2021-04-16 10:14:23 1059 2

原创 二叉树前中、后、序遍历的非递归遍历

package frank.test3;import java.util.Stack;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; }}public class test { //前序 public static void preOrder(TreeNode root) { Stack<Tr

2021-04-12 19:37:29 60

原创 http与https----https详解

IP:格式:XXX.XXX.XXX.XXX(1) 四个部分组成,每个部分的范围为0-255(2)网络号:前三个部分组成(标识网段)(3)主机号:最后一个部分(标识主机)<a>网络号相同处于同一个网段 主机号标识唯一主机局域网内(局域IP):网段唯一,同一个网段主机唯一公网(公网IP):公网IP唯一分为A-E五大类,部分范围时局域网IP,部分是广域网IPA类 0.0.0.0到127.255.255.255 B类 128.0.0.0到191.255.255.255 .

2021-04-11 08:55:19 328

原创 TCP/IP五层模型相关协议(IP和MAC)

目录网络层IP协议协议头格式(了解)网段划分数据链路层协议MAC地址MTUARP应用层协议DNS网络层IP协议协议头格式(了解)4位版本号(version): 指定IP协议的版本。对于IPv4就是4 4位头部长度: IP头部的长度是多少个32bit,也就是 length * 4 的字节数.。4bit表示最大的数字是15,因此IP头部最大长度是60字节 8位服务类型:3位优先权字段(已弃用),4位TOS字段,和1位保留字段(必须置为0)。4位 TOS...

2021-04-10 21:48:58 594

原创 TCP协议相关机制及粘包问题

确认应答机制 (安全机制) 超时重传机制 (安全机制) 连接管理机制 (安全机制) 滑动窗口 (效率机制) 流量控制 (安全机制) 拥塞控制 (安全机制) 延迟应答 (效率机制) 捎带应答 (效率机制)滑动窗口机制--提供效率使用滑动窗口可以解决效率问题(类似多线程的并发方式)同时发送多个数据报窗口大小:无...

2021-04-10 14:23:08 195

原创 UDP和TCP(UDP/TCP特性及TCP的三次握手四次挥手)

回顾:网络传输设计协议考虑的两个因素:效率、安全UDP协议 格式:特点:无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接直接发送数据 不可靠: 没有类似TCP保证数据传输的安全机制(连接管理机制、确认应答机制,超时机制),但是效率更高 面向数据报: 不能够灵活的控制读写数据的次数和数量(应用层交给UDP多长的报文,UDP原样发送,既不会拆分也不会合并),只能一次接收(系统级别的操作:调用系统函数) 没有发送缓冲区(发了消息就不管),有接收缓存区...

2021-04-09 15:42:10 198

原创 五元组及不同组网方式的传输流程

一、五元组五元组:源IP,源端口号,目的IP,目的端口号,协议号IP:标识主机,给人用的 源IP:发送数据的主机 目的IP:接收数据的主机端口号:表示某个主机进程 源端口:标识发送数据的进程 目的端口:标识接收数据的进程协议号:进程要封装、解析的数据报的数据格式 NDS协议(应用层协议):域名转IP查找方式:树形结构从下往上查找(查找缓存或者域名服务器)区域名服务器--》根域名服务器,若是...

2021-04-09 09:28:20 7098

原创 网络原理之TCP/IP五层模型

特点:每个结点最多有两棵子树,即二叉树不存在度大于 2 的结点二叉树的子树有左右之分,其子树的次序不能颠倒,二叉树是有序树二叉树的性质若根节点的层数为1,则一棵非空二叉树的第i层上最多有2^(i - 1) (i>0)个结点若只有根节点的二叉树的深度为1,则深度为K的二叉树的最大结点数是2^k - 1 (k>=0)对任何一棵二叉树, 若叶结点个数为 n0, 度为2的非叶结点个数为 n2,则有n0=n2+1具有n个结点的完全二叉树的深度k为log2(n + 1)上取整.

2021-04-08 14:46:01 308

原创 软件测试--测试设计方法及案例

测试用例的基本要素测试用例是为了实施测试而向被测试系统提供的一组集合,这组集合包含测试环境,操作步骤,测试数据,预期结果等要素评价测试用例的标准:用例表达清楚,无二义性用例可操作性强用例的输入输出明确,一条用例只有一个预期结果用例的可维护性好用例对需求的覆盖率高暴露程序bug的能力强测试用例的设计方法1.基于需求设计测试用例验证需求的正确性和合理性细分需求,多细致的需求就设计多细致的测试用例(从细分的需求里面,根据每一个功能点设计完整的测试用例)案例:用户需求:购

2021-04-07 17:18:55 1172 1

原创 测试基础篇II--软件测试生命周期及bug相关知识

软件测试的生命周期(软件测试的流程)?需求分析测试计划(范围、时间、人员、工具)测试设计/开发(测试用例)测试执行(执行测试用例,补充测试用例)测试评估(评估覆盖范围【测试了哪些功能,哪些没有测试】,bug的情况的统计,以测试报告的形式展示)回顾什么是bug?当我们的规格说明(软件需求)存在且合理,如果软件功能和需求规格不符合,说明是软件错误当规格说明不存在,如果用户的需求存在并且合理,如果功能和用户需求不匹配,说明是软件错误 如何描述一个bug?测试版本:当前测试的系统

2021-04-05 20:38:00 271

原创 测试基础篇--对软件测试、开发的基础认识

面试篇:1.什么是软件测试?验证软件是否满足用户的需求软件测试是按照一定的评判标准(需求)来进行活动的2.软件测试和软件开发的区别?软件开发:用程序开发的方式把用户的需求实现成一个软件(例如APP,web网站,小程序等) 角色:软件开发人员软件测试:主要由测试人员进行测试,看是否满足用户需求(1)软件测试和软件调试的区别?软件调试发生在软件开发过程目的不同:软件测试是查看软件是否满足用户的需求;软件调试是开发人员检查程序是否实现了他想要程序实现的功能(本质区别)角色不同:

2021-04-05 19:04:16 516

原创 filter过滤器

filetr的作用/使用场景:实现用户会话的统一管理记录用户请求信息统计请求响应的执行时间响应数据过滤敏感信息数据脱敏:数据库保存完整的数据,返回给前端是部分数据,如手机号显示184****0957filter可以有多个filter的执行流程客户端发送http请求后,先调用filter1,再调用filter2 ,最后再调用Servlet 服务端响应时,先调用filter2 ,再调用filter1如果filter要继续往下执行,调用filterChain.doFilter(

2021-04-05 18:40:01 373

原创 JavaScript详解

javascript:控制页面的行为一、变量javascript是一个弱类型语言(变量只有在运行时才会加载,类型可以在运行时变化,代码完成之后不会进行类型检查)利用var x;定义一个全局变量利用let x;定义一个局部变量二、数据类型 (1)数值(2)字符串:可以使用单引号和双引号(3)boolean(4)数组: var x = new Array();var x =[1,2,3];(5)json对象 :{key1:value1,key2;value2}(6)undefined :未

2021-04-05 13:57:20 134 1

原创 cookie和session详解

背景:http是一个无状态的协议,短连接(每次请求和响应都会新建连接及关闭连接)注:http1.1提供了长连接cookie概念定义: cookies 是存储在客户端计算机上的文本文件,并保留了用户的各种跟踪信息作用: 会话保持,如完成用户的登录与状态保持cookie工作原理:客户端向服务区发起登录请求服务器脚本向浏览器发送一组 Cookies。例如:姓名、年龄或识别号码等。浏览器将这些信息存储在本地计算机上,以备将来使用。当下一次浏览器向 Web 服务器发送任何请求时,浏览器会把这些

2021-03-29 11:37:59 1287

原创 后端资源定位及有关servlet的应用

如何定位后端资源?IDEA中web项目部署中tomcat的配置注意事项:url查找过程?(假设要去北京某个银行的某个营业厅办理转账业务)ip对应主机地址(对应北京)port对应进程(对应某个楼)应用上下文路径对应项目(对应营业厅)uri对应项目中的资源(对应营业厅中多个窗口提供的服务)浏览器向web服务器发送请求,根据应用上下文路径去访问某一个项目,再根据uri寻找项目中提供的某个资源,找到后向浏览器返回资源uri映射资源:静态资源文件程序提供的资源(servl..

2021-03-28 16:40:43 160

原创 前端开发语言——html、css与JavaScript

前端开发基本语言<a href">前端开发基本语言:html:定义页面的内容css:定义页面的样式javascript:控制页面的行为jquery是javaSript中的一个库,jquery是JavaScript中的一个子集。通过使用jquery框架中的一些接口,我们可以更方便的实现一些网页操作app.js文件 js文件时JavaScript语言文件的扩展名JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型

2021-03-26 15:45:03 1904

原创 网络原理之http协议(应用层)详解

http协议格式:(首行–头部–body)http请求首行:[方法] + [url] + [版本]Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔,遇到空行表示Header部分结束Body: 空行后面的内容都是Body,Body允许为空字符串. 如果Body存在, 则在Header中会有一个ContentLength属性来标识Body的长度http响应首行:[版本号] + [状态码] + [状态码解释]Header: 同http请求Body: 同http请求,但是

2021-03-26 08:54:41 348

原创 深度优先遍历(DFS)和广度优先遍历(BFS)的应用

深度优先遍历:DFS,原则就是沿着一条路径一直找到最深的那个节点,当没有子节点的时候,返回上一级节点,寻找其另外的子节点,继续向下遍历,没有就向上返回一级,直到所有的节点都被遍历到,每个节点只能访问一次。广度优先遍历:BFS,原则就是对每一层的节点依次访问,一层访问结束后,进入下一层,直到最后一个节点,同样每个节点都只访问一次对于下面的二叉树:深度优先搜索的遍历顺序:1-2-3-4-5-6-7-8-9广度优先搜索的遍历顺序:1-2-6-2-3-7-5-8-9广度优先搜索的适用场景:层序遍历、最短

2021-03-25 09:15:53 1516

原创 二叉树的基础认识与训练

二叉树二叉树的前序遍历:([根][左][右] )/** * 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, TreeNode

2021-03-24 19:33:05 106

原创 队列---双端队列与循环队列

接口与类的继承关系:双端队列双端队列:两端都可以进行入队和出队操作的队列Deque接口—>LinkedList(实现类) 公共方法:isEmpty() / size() / contains() … 当栈使用时:压栈:push(e)查看栈顶元素:peek()弹出栈顶元素:pop() 当单向队列使用时:插入队列:add(e)查看队首元素:element()取出队首元素:remove()方法:方法解释addFirst(e) / ofterFirs

2021-03-23 20:35:24 459

原创 深拷贝和浅拷贝详解

IO流的分类类:- File :文件操作流 - **字节流:Stream** (处理为字节的数据,write/read操作byte[] ,或一个byte)- **字符流:Reader、Writer** (处理为字符的数据,一般用在文本操作,操作byte[] 、byte、char[]、char)- **Input / Reader:输入流** (流的方向:读取 / 写入)- **Output / Write:输出流**- **Buffered:缓冲流**(开辟缓冲区)- **特殊:...

2021-03-20 16:58:31 313

原创 IO流

IO流的分类类:File :文件操作流字节流:Stream (处理为字节的数据,write/read操作byte[] ,或一个byte)字符流:Reader、Writer (处理为字符的数据,一般用在文本操作,操作byte[] 、byte、char[]、char)Input / Reader:输入流 (流的方向:读取 / 写入)Output / Write:输出流Buffered:缓冲流(开辟缓冲区)特殊:字节字符流转换流 InputStreamReader、

2021-03-20 16:53:35 46

原创 Java基础IO之文件学习

文件的构成文件头信息(Metadata)文件内容File文件操作类:java.io.File注1:java.io.File类是一个普通的类,若要实例化对象,用到以下构造方法方法解释File(String pathname)创建指定路径文件对象new 操作注意事项:既可以指文件,也可以指文件夹通过路径创建File:可以使用绝对路径/相对路径不管路径上是否有这个文件/文件夹,Java中都可以创建得到一个File对象常见的API方法:方法.

2021-03-20 09:36:41 45

原创 阻塞队列与线程池

一、阻塞队列队列的特点:先进先出底层数据结构:循环队列,链表jdk队列实现:可以看Queue接口实现类阻塞队列:BlockingQueue接口,使用循环数组实现队列(阻塞队列的实现需要保证线程安全[take和 put])实现:package lesson;/** * 实现阻塞队列: * 1. 线程安全问题:在多线程下,put、take不具有原子性,4个属性,不具有可见性 * 2. put操作,如果存满了,需要阻塞等待;take如果是空,需要阻塞等待 * @param <T

2021-03-19 10:45:56 174

原创 线程间的通信---wait()、notify()

wait()作用:让当前线程进入等待状态(使线程停止运行),同时,wait()也会让当前线程释放它所持有的锁,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,当前线程被唤醒(进入“就绪态”)注意:1.方法wait()的作用是使当前执行代码的线程进行等待,wait()方法是Object类的方法,该方法是用来将当前线程置入“预执行队列”中,并且在wait()所在的代码处停止执行,直到接到通知或被中断为止。 2. wait()方法只能在同步方法中或同步块中调用。如果..

2021-03-19 08:11:25 952

原创 初阶多线程安全问题(II)

多线程案例 --单例模式饿汉模式懒汉模式-------用于单线程-------多线程 (性能低)-------多线程(二次判断,性能高)接下篇

2021-03-17 16:58:33 80

原创 初阶多线程安全问题(I)

了解:线程有用户线程(非守护线程)和守护线程(后台线程) 分析:有一个COUNT = 0 变量,同时启动20个 线程,每个线程执行1000次,每次循环COUNT++,等这20个子线程执行完毕后,再main线程打印COUNT(预期2000),但是打印结果却总是小于预期值,这就涉及到线程安全问题。*public class UnsafeThread { private static int COUNT = 0; public static void main(String[] arg.

2021-03-16 09:56:13 94

原创 Java运行时数据区域划分

运行时数据区域划分Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若 干个不同的数据区域,如下: 1. 程序计数器(线程私有):是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。2. Java虚拟机栈(线程私有):每个方法被执行的时候, Java虚拟机都会同步创建一个栈帧用于存储局部变量表、 操作数栈、 动态连接、 方法出口等信息;方法调用传入方法栈桢,方法参数是作为方法局部变量接受传入值。3. 本地方法栈(线程私有):是为虚拟机使用到的本地(Native) 方法

2021-03-14 20:19:03 214

原创 Thread常用API总结及深入

多线程的使用场景?(1)提高性能,效率(并行并发执行)(2)阻塞代码导致后续代码无法执行,多线程让后续代码可以执行,不受阻塞代码的影响什么因素会影响多线程的效率?根据哪些因素设计多线程的数量?Thread常用API静态方法:作用在当前线程static intactiveCount() 获取当前线程主中还存活的线程数量static ThreadcurrentThread() 获取代码行所在的当前线程static booleaninterrupted() 中断线

2021-03-13 23:17:45 107

原创 线程及其常见方法总结

线程:线程与进程的区别:进程是系统分配资源的最小单位线程时系统调度的最小单位一个进程内的线程之间是可以共享资源的资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。内存分配:同一进

2021-03-13 11:58:30 130 1

原创 栈和队列的方法总结及使用

栈(Stack):后进先出(LIFO)方法解释push(e)压栈pop()出栈peek()取栈顶元素(不删除)boolean empty()判断栈是否为空队列(Queue):先进先出(FIFO)方法解释add(e) / ofter(e)入队列,add()抛出异常,offer()返回特殊值remove() / pool()出队列,remove()抛出异常,offer()返回特殊值element() / peek()取

2021-03-11 21:35:48 165

原创 web前端开发相关知识记忆——html

html:描述网页的一种语言html标签:html 标签是由尖括号包围的关键词,比如 html 标签通常是成对出现的,比如 < b> < /b ><标签名 属性=“属性值”></标签名>(内部还可以放内容,内容可以是文本,可以是其他标签)html是xml的一种,遵循xml格式,只是html有部分特殊的标签写法,即不需要有结束标签html是网页文件,可以通过html提供页面元素(dom元素)html整体结构是一个树形结构,也叫.

2021-01-19 21:10:00 159

原创 网络原理之url

目标:对于HTTP协议来说,需要掌握协议格式,结合理论与实操,进行程序的调试,其中,HTTP协议格式本身URL:俗称网址协议:数据格式的约定域名:基于DSN解析为IPIP:网络中定义主机的地址(逻辑地址)PORT:端口号,定位某个主机中唯一的进程(应用程序)—绑定进程url:全路径(绝对路径)url是一种具体的uri,它是uri的一个子集uri:包含url,还包含其他相对路径注意:输入域名直接访问,其实是访问 / 这个路径的资源,浏览器中,不输入端口号,是因为http协议的默认端口

2021-01-19 18:54:59 322

原创 认识I/O

I/O本质:对数据库的读写操作I/O分类:(1)BIO:同步阻塞的IO(2)NIO:同步非阻塞IO(3)AIO:异步非阻塞IOI/O的方式:(1)网络IO(2)本地文件IOI/O读写方式:I/O特性:(1)本质上属于数据传输(2)涉及两个设备间数据的传送方向(3)数据流 (数据在不同设备之间流转)(4)Java进程的IO操作对进程影响:----->阻塞IO会导致进程在运行态和阻塞态转换,由操作系统完成后续的IO操作----->Java进程,在内.

2021-01-17 16:41:20 131

原创 操作系统——进程

操作系统(OS)的概念:一个基本的程序集合其中包括:(1)内核(进程管理,内存管理,文件管理,驱动管理)(2)其他程序(例如函数库,shell程序等)OS是一款纯正的"搞管理"的软件(1)可以是对硬件的管理也可以是对软件的管理 (2)可以是对内的管理(对进程),也可以是一种对外业务的管理(对硬件资源操作)进程首先什么是进程?对操作系统来说,一个任务就是一个进程课本概念:程序的一个执行实例,正在执行的程序等内核观点:担当分配系统资源(CPU、内存)的实体,具有动态特性这里

2020-12-15 17:10:58 159

原创 有关maven的基本使用

在IDEA中使用maven时,注意要先配置好环境maven是什么?maven是一种用于软件项目管理工具,基于 Project Object Model(POM),用来管理项目的构建,汇报及文档生成等功能。maven的作用:项目构建 项目依赖 项目打包maven能自动完成项目的基础工具建设maven使用标准的目录结构和默认构建生命周期标准的maven结构:本质上是基于pom.xml配置,使用maven的命令,完成项目构建工作java中经常会使用xml来做配置管理maven的常用配

2020-11-23 21:07:52 85

空空如也

空空如也

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

TA关注的人

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