自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 个人博客测试用例

个人博客测试用例一:实现的功能:1.注册页面:2.登陆页面:3.我的文章列表页面4.文章列表页面二:使用技术1.客户端:2.服务端:3.其它:三:个人博客测试用例一:实现的功能:1.注册页面:根据用户名和密码结合数据库中用户信息判断是否是新用户,判断两次密码输入是否相同,如果是新用户且用户名密码以及确认密码输入规范则应该注册成功,否则返回注册失败原因。2.登陆页面:简单的根据用户名和密码结合数据库中的用户信息来判断当前用户是否可以进入该系统,登录成功则进入我的文章列表页面,登陆失败则返回失败原因。

2021-08-03 19:57:37 887

原创 面向对象编程——包,继承,封装,多态,抽象类,接口

面向对象编程包封装继承:extendsfinal包1.包 (package) 是组织类的一种方式.使用包的主要目的是保证类的唯一性。2.包名需要小写封装1.什么是封装:将 字段 或者 方法 使用private进行修饰。2.封装的意义:安全性,让类的调用者对类的使用成本降低了。继承:extendsA extends B1.意义:代码的重复使用B:基类/父类/超类A:子类/派生类2.子类继承父类都继承了什么?继承了所有的内容(除了构造方法)。包含 private 修饰的。但是注意事项,

2021-07-02 13:53:48 237

原创 封装,复杂度复习

OOP语言:面向对象语言特征:封装,继承,多态封装的意义:让类的调用者能够对类的学习成本降低this.name = name;题:this代表什么?答:当前对象的引用所有被 private 所修饰的 成员变量 或者 成员方法 都只能在 类内 进行访问:如果类外要进行访问 需要提供公有的接口什么时候使用public什么时候使用private 没有明确的规定!一般情况下项目开发当中所有的成员属性一般都是私有的构造方法:本质还是一个方法但是没有返回值。题:实例化一个对象/创建一 个对象分几

2021-06-21 02:40:17 182

原创 数组,类和方法复习

题:重载(overload)和重写(覆盖、覆写)(override)的区别?答: 重载:在同一个类中方法名相同参数列表不同返回值不做要求递归:将大问题化解为小问题,意味着 处理大问题的方式 和 处理小问题的方式 是一样的。主要是找到递归的递推公式。递归特点:1.有一个趋近于终止的条件2.调用自己本身注意:如果是在OJ上答题,一旦程序死循环或者递归条件没有 或者递归条件出错,就会出现运行时间超出限制数组定义:一块连续的内存,存储的是相同数据类型的集合数组的初始化: //.

2021-06-20 13:46:02 190

原创 Web复习1——前端三剑客和网络初识

前端三剑客 和 网络初识html概念:常见元素介绍:CSS概念:JS网络http:HTTP状态码:http请求:http响应:http方法:Maven:html概念:HTML是一种标记语言,用来结构化我们的网页内容并赋予内容含义,例如定义段落、标题和数据表,或在页面中嵌入图片和视频。常见元素介绍:form get/post 提交.div块级元素无语义元素,通常是用来组织内容,方便之后通过 css 或者 js 对其进行布局或操作。<!-- 某个版块 --><div&g

2021-06-08 20:38:43 126

原创 SQL复习2—索引,事务

索引注意事项:1.在生产服务中不要直接执行添加索引的操作(创建索引的过程非常耗时,且数据量越大创建的时间就越长)2.对于多读(查询的)场景适合使用索引,而对于添加,删除比较多的场景,索引就不适用。3.注意查询的时候不能触发索引的查询。比如在列上进行赋值运算题:什么情况下索引不会触发?答:1.当对一个列(已经设置索引的列),进行赋值查询的时候。2.避免使用like查询,当使用模糊查询的时候有可能不会触发索引,比如当使用like’%xxx%'不会触发索引,当使用like’xxx%'可以出发索引。

2021-06-08 16:17:34 81

原创 SQL复习

SQL操作1.数据库操作2.表操作1. 创建表:2. 删除表:drop3. 查询所有表:show4. 修改表结构:5. 新增数据:insert into6. 修改数据:update7. 清空数据:delete8. 表查询9. 去重: distinct10. 排序:ORDER BY11.分页查询:limit12.多表查询内联查询(求交集): [inner] join外联查询:13.子查询:1.数据库操作查询所有数据:show databases;删除数据库:drop database db_nam

2021-06-06 01:06:51 478 2

原创 测试的分类

测试分类1.按开发阶段划分测试分类(1)测试金字塔模型(2)单元测试(3)集成测试(4)系统测试(5)回归测试1.按开发阶段划分(1)测试金字塔模型从下到上三层测试,投入相同的时间,人力资源等,回报率(产出)越来越低从下到上,测试的效率越来越低从下到上,定位问题越来越难(2)单元测试测试阶段:编码前:(TDD)编码后:Test-Driven-Develop 测试驱动开发测试内容:单元接口测试: 按照接口设计文档,参数,输出局部数据结构测试( 局部变量)边界

2021-06-05 20:05:03 299

原创 JUC4大常用类和安全容器

JUC4大常用类:1.ReentrantLock*(1)lock写在try之前(2)在 final 里面进行 unlock()2.信号量semaphore可以实现限流功能acquire():尝试获取锁,如果可以正常获取到,则执行后面的逻辑业务,如果获取失败,则阻塞等待release():释放锁public static void main(String[] args) { //1.创建信号量 Semaphore semaphore = new Sema

2021-06-03 16:25:42 220 1

原创 JVM,JMM,类加载机制,垃圾回收知识点

JVM:1.JVM5个组成部分2.类加载机制(JVM加载)双亲委派模型,破坏双亲委派模型的3个场景3.垃圾回收(1)判断什么是垃圾(2)垃圾算法(3)垃圾处理器(7种-》CMS/GI)4.JVM(让JVM高速运行的一种技术)Java能够一次编写,到处运行的关键(JVM兼容处理)JVM布局(HotSpot):JDK1.81.堆(线程共享):所有的对象都存在此区域,此区域也是JVM中最大的一块区域。JVM垃圾回收就是针对此区域2.JVM栈(Java虚拟机栈)线程私有(1)局部变量表:8大

2021-06-03 01:51:05 185

原创 多线程高阶——常见的锁 策略

乐观锁:乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,则返回用户错误的信息,让用户决定如何去做。CAS(乐观锁): 全称Compare And Swap,字面意思:“比较并交换"乐观锁的实现:Atomic*线程不安全的解决方案:1.加锁2.ThreadLocal3.Atomic*题:CAS底层实现原理?答:Java层面CAS的实现是unsafe类,unsafe类调用了C++的本地方法,通过调用操作系.

2021-05-30 02:05:33 95

原创 内存溢出问题及单例模式举例

分析内存溢出:线程池是长生命周期的,而线程是执行完任务线程就结束了(线程相关资源就会释放)题:Hashmap和ThreadLocalMap处理hash的区别?答:Hashmap使用的链表法,ThreadLocalMap使用开放寻址法原因:开放寻址法的特点和使用场景是数据量比较少的情况下性能更好;而Hashmap里面存储的数据问题:为什么会发生OOM?答:ThreadPool(长生命周期)----》Thread–>ThreadLocalMap—>Entry[]–>Entry—&g

2021-05-27 16:59:34 175

原创 ThreadLocal使用方法及存在问题

线程池两种执行方式:(1)execute执行(new Runnable)无返回值(2)线程池的特征:相比于线程来说是长生命周期,即使没有任务也会运行并且等待任务线程池的关闭(1)shutdown:拒绝新任务加入,等待线程池中任务队列执行完成之后,在停止线程池。(2)shutdownNow:拒绝新任务加入,不会等待线程池中任务队列执行完成,就停止线程池。线程池状态线程池状态不等于线程状态(6种)、线程不安全的解决方案:ThreadLocal 使用:set(T):将变量存放到私有变量中

2021-05-27 09:40:05 1141

原创 黑盒测试中具体的设计方法

因果图法:一种逻辑图(恒等,与 ,或,非)恒等:如果原因为真,那么结果必定为真。与:只有2个原因都为真,那么结果为真或:2个原因中有一个为真时,结果就为真。非:只有原因为假,结果才为真当输入有很多,不同输入的组合对应不同的输出,用因果图来分析不同输入组合和不同输出之间的关系。用因果图法设计测试用例的步骤(1)分析出所有的输入,输出(2)找出输入输出之间的逻辑关系(3)根据输入输出之间的关系画因果图(4)根据因果图画判定表(5)根据判定表设计测试用例...

2021-05-27 00:06:33 585

原创 线程池7种创建方式

一 线程的缺点1:现成的创建需要开辟内存资源:本地方法栈,虚拟机2:3:二 线程池1.定义:使用池化技术来管理和使用线程的技术2.线程池的创建方式(共7种):(1)创建固定个数的线程池ExecutorService service = Executors.newFixedThreadPool(4);问题:创建了十个线程来执行2个任务,那当前程序创建了几个线程?(2)创建带缓存的线程池public class ThreadPoolDemo3 { public static vo

2021-05-23 00:04:44 1273

原创 树根

一 题目描述数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24来说,把2和4相加得到6,由于6是- -位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12不是一位数,因此还得把1和2加起来,最后得到3,这是一个位数,因此3是39的数根。现在给你一个正整数,输出它的数根。输入描述:输入包含多组数据。每组数据数据包含一个正整数n

2021-05-17 16:48:24 121 1

原创 初学测试3

1.如果碰到一个BUG,和开发人员产生冲突怎么办?(1) 先检查自己的BUG描述是否清楚(2)检查BUG的定级是否按照公司的标准来的(3)站在用户的角度去说服开发(4)不断提高自己的业务水平和技术水平(5)和开发人员,产品经理开会商量BUG的解决方案2.测试用例的基本要素测试用例是向测试系统提供的一组集合, 包含测试平台,测试数据,测试步骤,预期结果等。(测试方式, 标题,重要性,优先级,功能模块等)3.评价测试用例的标准:对比好坏代码的评价标准(1)用例表达清楚,无二义性。(2)用例可

2021-05-16 01:20:37 106 2

原创 死锁,线程休眠

一. 死锁1.定义:在多线程编程中(两个或两个以上的线程)因为资源抢占而造成线程无限等待的问题。2.线程和锁的关系(1对多) :一个线程可以拥有多把锁;而一把锁只能被一个线程拥有。3.排查死锁的工具:(1) jconsole(2)Java Visual VM(3)JMC4.死锁关键代码死锁关键代码:synchronized(lockA) {Thread. sleep (1000) ;synchroni zed (lockB) {5.死锁操作的4个条件(同时满足) :(1

2021-05-15 01:27:37 193

原创 解决线程不安全问题的三种方法

一.volatile:轻量级解决“线程安全”的方案1.作用:禁止指令重排序解决线程可见性的问题,实现原理是当操作完变量之后,强制删除掉线程工作内存中的此变量。注意事项:volatile不能解决原子性问题。二. 线程的工作方式:(1.)现在自己的工作内存中找变量(2.)去主内存里面找变量.三.线程安全问题解决1.CPU抢占式调度(不能解决,因为CPU抢占是不可控的)2.每个线程操作自己的变量(可能行)不通用,修改难度大。3.在关键代码让所有的CPU排队执行,加锁。(1)锁操作的关键

2021-05-13 03:26:58 1195

原创 线程学习2

1.start 和 run 方法的区别(1)run属于普通方法;而start属于启动线程的方法。启动线程必须要调用start方法。(2)run方法可以执行多次,而start方法只能执行一次。2.中断线程方法(1)使用全局自定义的变量来终止线程。此终止方法比较温柔,在拿到终止指令之后,需要执行完当前的任务才会真正终止线程。(2)使用线程提供的终止方法interrupt 来终止线程。while (!Thread.interrupted()) {while (!Thread.currentThre

2021-05-12 02:23:10 65

原创 多线程学习1

一. 线程与进程1.进程:系统分配资源的最小单位,缺点:不能相互共享资源2.线程:系统调度的最小单位。轻量级“进程”优点:创建的时候占用更少的资源,并且多个线程之间可以共享资源。3线程共享的资源:(1)打开的文件(2)共享内存(new 0bject)4.线程与进程区别(1)进程系统分配资源的最小单位;线程是系统调度的最小单位;(2)一个进程中至少要包含一个线程;(3)线程必须要依附于进程,线程是进程实质工作的一个最小单位。二.线程的创建方式:1.继承Thread类是实现线程的创建线程

2021-05-11 01:06:40 123 1

原创 测试相关知识点2

1,软件测试V模型优点:左边开发的每一个阶段和右边测试的每一 个阶段一一对应,是右边测试每一个阶段的依据。缺点:测试介入晚,前期的错误和风险到后期才发现,会失去及时就纠正的机会。2,软件测试W模型优点:测试阶段和开发阶段在两个独立的V模型里面,测试介入包比较早,在项目初期就介入,前期的风险可以及时被发现。缺点: W模型每一个阶段仍然是一个串行的过程,不能适应需求变化的项目,所以无法应用到敏捷开发...

2021-05-07 14:26:32 71 3

原创 测试相关知识点1

测试最近开始接触测试的课程了,在这里我就近日所学做个简单的总结。什么是软件测试?验证软件是否满足用户需求,从正反两个方面验证2.软件测试和开发的区别?(1)软件测试和软件开发中调试的区别a.目的不同软件测试的目的:测试人员根据需要去判断软件是否满足用户的需求调试的目的:软件开发人员为了验证程序是否可以满足他想让程序实现的功能。b.角色不同调试:开发人员;测试: 测试人员,开发人员(单元测试),用户c.阶段不同调试,软件开发的阶段;测试:整个软件开发的生命周期。测试左移:需求前

2021-04-19 01:41:26 169 1

原创 网络基础知识小结

网络基础知识小结一 网络发展史:1.独立模式:计算机之间相互独立2.网络互连:多台计算机连接在一起,完成数据共享3.局域网:计算机数量更多,通过交换机和路由器连接在一起4.广域网:将远隔千里的计算机都连在一起二 协议:也就是一种规则例如 Http协议,request中必须包含4部分内容:首行信息/head/空行/Body三 网络分层协议1.OSI七层模型(熟记顺序及内容)(7)应用层:程序这一层知名协议: HTTP,SSH,FTP,DNSHTTP基于传输层TCP/IP实现的(6)

2021-04-18 01:20:20 129 1

原创 Java变量,数据类型转换,运算符,逻辑控制语句

一.变量1.变量的作用域:变量能生效的范围,一般是变量定义所在的代码块(大括号)2.变量的命名规则a.一个变量名只能包含字母,数字,下划线b.数字不能开头c.英文大小写敏感,Num和num是两个不同的变量注:a.不推荐用中文/美元符号命名b.推荐小驼峰(当一个变量名由多个单词构成的时候,除了第一个单词之外,其他单词首字母大写)命名法二.常量:常量指的是运行时类型不能发生改变,只能初始化一次三:类型转化int和 long/ double相互赋值结论:不同数字类型的变量之间赋值,表

2020-12-28 16:02:03 156

原创 初学Java

通过近一个月对Java的学习,我对编程的兴趣有了非常大的提高,在这里我想简单的梳理一下近期所学的内容。Java是一门半编译型,半解释型语言。先通过Javac编译程序把源文件进行编译,编译后生成的**.class文件是由字节码(字节码的文件实际上是一个二进制文件)组成的平台无关,面向JVM的文件。最后启动Java虚拟机来运行.class文件。Java程序运行需要经过编译**,运行两个阶段编译:Javac命令运行:Java命令一.Java运行环境JDK:Java开发工具JRE: Java运行环境

2020-12-27 18:57:27 1208 16

空空如也

空空如也

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

TA关注的人

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