自定义博客皮肤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)
  • 收藏
  • 关注

原创 网络初识之【IP+端口号+网络协议+OSI+TCP/IP+封装和复用】

1.IP地址IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机 的网络地址。就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如: 100.4.5.6。2.端口号。

2023-12-21 22:16:38 270 2

原创 详解自动化之单元测试工具Junit

自动化就是 selenium 脚本来实现的,junit 是 java 的单元测试工具,只不过在实现自动化的时候需要借用一下 junit 库里面提供的一些注解。这里的这个 csv 文件,不要直接改后缀生成,要用系统自带的 Excel 工具,来打开和编辑 csv 文件。对比这两个实例中的用例的执行顺序,我又产生了是不是按照方法名的字母顺序来执行的呢?当我们需要测试多个类中的用例时,如果一个类一个类的去运行,那是非常耗时耗力的,表示当前方法为测试方法,执行这个类的时候会自动执行这个注释下的所有方法。

2023-11-22 17:24:35 1352 5

原创 详解自动化测试之 Selenium

作用:通过自动化测试有效减少人力的投入,同时提高了测试的质量和效率概念:自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。比如,回归测试版本越来越多,版本回归的压力越来越大,仅通过人工测试来回归所有的版本肯定是不现实的,所以我们需要借助自动化测试。

2023-11-17 15:40:53 876 5

原创 【递归】求根节点到叶节点数字之和(Java版)

利用递归完成的话,最主要的还是寻找相同子问题!,树中每个节点都存放有一个。例如,从根节点到叶节点的路径。计算从根节点到叶节点生成的。给定一个二叉树的根节点。是指没有子节点的节点。

2023-11-12 16:36:12 179 3

原创 软件测试之测试分类(按照测试对象分类,按照测试对象划分)

按照测试对象分类关于测试对象分类中的各个测试,在此前已经发表过了,这次咱就着重讲几个较为关键的:1.可靠性测试可靠性(Availability)即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务的时间占总时间的百分比表示。系统非正常运行的时间可能是由于硬件,软件,网络故障或任何其他因素(如断电)造成的,这些因素能让系统停止工作,或者连接中断不能被访问,或者性能急剧降低导致不能使用软件现有的服务等。

2023-11-10 20:55:11 144 1

原创 软件测试之用例篇(万能公式、具体方法)

依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则所代表的等价类测试通过,这样就可以用较少的测试用例来达到尽量多的功能覆盖,解决了不能穷举的问题。在判定表中,假如我们有三个输入条件,2个输出结果,那么会有2^3个测试用例,如果我们有1000个输入条件呢,就会有2^1000个测试用例 ,不现实。不同的浏览器,不同的版本,可能会有很多很多,难道所有的浏览器都需要测试吗?对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验。

2023-11-01 22:11:36 207 3

原创 软件测试之BUG篇(定义,创建,等级,生命周期)

当且仅当产品规格书存在且正确时,程序的实现和规格书的要求不匹配时,那就是软件错误。当产品规格说明书没有提到的功能时,以用户的为准,当程序没有实现用户合理预期要求时,那就是软件错误。

2023-10-31 21:02:11 635 2

原创 【递归】Pow(x , n)(Java版)

想要用递归解决这道题,我还是先讲一下我理解的递归,我们可以把递归所在的函数理解为一个黑盒子,在这个黑盒子中,他的功能能够完美实现你的需求,所以我们就需要相信它一定能够完成我想要的,这里同样。当 n = 奇数 时当前数 = 当前数^(n/2) * 当前数^(n/2) * 当前数^1。当 n = 偶数 时当前数 = 当前数^(n/2) * 当前数^(n/2)我们可以看到当前这道题的主问题都有相同的子问题,就是当前值等于子值的平方。在解决子问题的时候又碰到相同的主问题。在解决主问题的时候碰到相同的子问题。

2023-10-27 16:32:53 186 4

原创 【递归】汉诺塔问题(Java版)

1.题目解析2.讲解算法原理2.1.如何来解决汉诺塔问题?2.2.为什么这道题可以用递归来做?2.2.1 什么是递归2.2.2 为什么会用到递归3.如何编写递归代码?4.递归的细节展开图

2023-10-14 17:15:25 370 2

原创 软件测试之概念篇2(瀑布模型、螺旋模型、增量模型和迭代模型、敏捷模型,V模型、W模型)

增量和迭代两者是有区别的,增量是逐块建造的概念,迭代是反复求精的概念。敏捷开发有很多方式,其中 scrum 是比较流行的一种。特点:轻流程、轻文档、重目标、重产出。三个角色和五个重要会议。

2023-10-10 22:27:34 438 1

原创 软件测试之概念篇(需求,测试用例,BUG描述,产品的生命周期)

用户需求:可以理解为就是甲方提出需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。这种需求一般是比较简略的,并且用户需求是五花八门的软件需求:也就是功能需求,详细描述了开发人员必须实现的软件功能大多数公司在进行软件开发的时候会把用户需求转化为软件需求,开发人员和测试人员工作的直接依据就是软件需求但是,用户需求能作为软件需求的直接依据吗?显然是不能的,

2023-10-10 21:11:30 1354 1

原创 Spring 事务(事务、声明式事务@Transactional、事务隔离级别、事务传播机制)

如果中途遇到的异常,则回滚事务。Propagation.REQUIRES_NEW:表示创建⼀个新的事务,如果当前存在事务,则把当前事务挂起。事务A在读取数据的时候读取到了事务B尚未提交的数据,但是在过一会后事务B对A读取到的数据进行回滚了,那么A读取的数据就是脏读,读未提交侧重于查询,既然有了脏读,那么也肯定有不可重复读和幻读的问题。针对上面脏读的问题来解决的,事务A读到了事务B已经提交的数据,然后过了一会事务B将提交的数据进行修改了,此时事务A又读了一次B的数据,发现两次读到读到数据不一样,这个就叫不。

2023-08-24 16:16:01 940 5

原创 Spring Boot 统一功能处理(拦截器实现用户登录权限的统一校验、统一异常返回、统一数据格式返回)

且在重写方法的时候其余类型都是用的统一的格式化工具,而String用的是它自身的格式化工具,String自身的格式化工具在执行的时候还没有加载好,就会导致 原始类型 是String的时候,在转化成HashMap的时候就会报错。发现这个方法在执行时会查找使用所有的 @ControllerAdvice 类,发送某个事件时,调用相应的 Advice 方法,比如返回数据前调用统一数据封装,比如发生异常是调用异常的 Advice 方法实现的。

2023-08-12 15:53:13 971 4

原创 Spring AOP(AOP概念,组成成分,实现,原理)

Aspect // 告诉框架我是一个切面类@Component // 随着框架的启动而启动@Aspect // 告诉框架我是一个切面类@Component // 随着框架的启动而启动/*** 切点(配置拦截规则)*/切点表达式由切点函数组成,其中 execution() 是最常⽤的切点函数,⽤来匹配⽅法,语法为:execution()@Aspect // 告诉框架我是一个切面类@Component // 随着框架的启动而启动/**

2023-08-10 22:00:52 563

原创 MyBatis查询数据库之四(动态SQL -- if、trim、where、set、foreach 标签)

在注册用户时,有些信息是必填的,有些信息是非必填的,比如咱们CSDN的信息,用户昵称是必填的....其余的比如个人简介、出生日期、开始工作都是非必填的程序应该 如何实现呢?,它可以实现如果没有任何的查询条件,那么它可以隐藏查询中的 where sql,但如果存在查询条件,那么会生成 where 的sql 查询,collection:绑定方法参数中的集合,如 List,Set,Map或数组对象。如果在某种情况下,所有的属性为非必填,那么你不知道哪个属性肯定会填上,对集合进⾏遍历时可以使用该标签。

2023-08-09 15:33:42 2069 5

原创 MyBatis查询数据库之三(#{}vs${},like查询,resultMap,as,多表查询)

查询操作1.单表查询下面我们来实现⼀下根据用户 id 查询用户信息的功能1.1 参数占位符#{}和${}#{}:预编译处理${}:字符直接替换在正常的我们用id来查询用户时:都是没问题的,但是当我们用username来查询时:可以看到在我们使用 # 符时是占位符,使用 $ 符则是直接替换了,int类型的自然没有问题,但是字符串类型的就有问题了对于MySQL是要加单引号的,而$是啥都不加,所以是错误的!!1.2 ${}的优点有人会说,#{}这么好使的话为什么还会有${}的存在呢?

2023-08-09 14:45:26 303

原创 MyBatis 查询数据库之二(增、删、改、查操作)

1. 配置打印 MyBatis 执行的SQL2. 查询操作2.1 通过用户 ID 查询用户信息、查询所有用户信息(1) Mapper 接口(2)UserMapper.xml 查询所有用户的具体实现 SQL(3)进行单元测试3. 增加操作3.1 在 mapper(interface)里面添加增加方法的声明3.2 在 XMl 中添加 标签和增加的 sql 代码3.3 生成测试类 4.修改操作4.1 在 mapper(interface)里面添加修改方法的声明4.2

2023-08-05 22:00:29 1559

原创 Spring Boot 单元测试

比如这个修改操作,如果不想污染数据库中的数据,就可以直接添加注解 @Transactional。单元测试,是指对软件中的最小可测试单元进行检查和验证的过程叫单元测试。,用于检测被测代码的一个很小的、很明确的(代码)功能是否正确。执行单元测试就是为了证明某段代码的执行结果是否符合我们的预期。判断两个对象或两个原始类型是否不相等。判断两个对象或两个原始类型是否相等。判断两个对象引用是否指向同一个对象。判断两个对象引用是否指向不同的对象。判断给定的布尔值是否为 false。判断给定的布尔值是否为 true。

2023-08-05 21:31:09 1001

原创 MyBatis查询数据库之一(概念+创建项目+基础交互)

也就是说使用 MyBatis 可以像操作对象⼀样来操作数据库中的表,可以实现对象和数据库表之间的转换,接下来我们来看 MyBatis 的使用吧。MyBatis去除JDBC代码:MyBatis屏蔽了大部分JDBC(Java Database Connectivity)代码,减少了繁琐的数据库操作,开发者只需关注SQL语句的编写和Java对象的映射。MyBatis对存储过程支持:MyBatis支持存储过程的调用,可以通过MyBatis执行存储过程,将Java对象与存储过程进行映射,并处理存储过程的输出参数。

2023-08-02 20:11:56 1131

原创 Spring MVC -- 返回数据(静态页面+非静态页面+JSON对象+请求转发与请求重定向)

请求转发就像你(客户端)对你妈妈(服务端)说你饿了,你妈妈帮你点了外卖,在这个过程中你(客户端)只接触到你妈妈,剩下的事都是你妈妈(服务端)来完成的,这就是请求转发。可以看到前面返回的内容是 hello.html,这里通过一级目录 sayhi,也可以访问到这个页面,说明返回的虽然是 String 类型,但实际上是一个页面。请求重定向就像你(客户端)对你妈妈(服务端)说你饿了,你妈妈说她没时间你找你爸去,然后你找了你爸爸,这就变成了你找你爸爸帮忙了,这就是请求重定向。

2023-07-22 20:06:42 646

原创 Spring MVC -- 获取参数(普通对象+JSON对象+URL地址参数+文件+Cookie/Session/Header)

有些特殊情况下,前端传递的参数 key 和我们后端接收的 key 可以不一致,比如前端传递了一个 time 给后端,而后端又是用 createtime 字段来接收的,这样就会出现参数接收不到的情况,如果出现这种情况,我们就可以使用。意味着必须要有属性,通常情况下需要添加 required = false ,如果不添加,那么当 session 中不存在此属性的时候程序运行就会报错。文件上传我们使用这样的方法的话就存在一个问题:我们传输文件的地址是固定的,当李四传输了文件,张三再传输的时候,

2023-07-22 18:54:14 764

原创 Spring MVC-基础概念(定义+创建和连接+@RequestMappring的描述)

1.什么是Spring MVC?官方对于 Spring MVC 的解释是:Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。的正式名称“Spring Web MVC”来自其源模块的名称(Spring-webmvc),但它通常被称为“SpringMVC”。这就意味着:1.servlet那套写法再MVC中是适配的2.意味着具备http能力,意味着可以拿它去做接口,做网站2. MVC 和 Spring MVC 的关系。

2023-07-21 20:11:52 341

原创 Spring Boot 热部署

不同的版本配置不同,配置分为 2021.2 之前的版本 和 2021.2 之后的版本。

2023-07-15 16:47:34 701

原创 SpringBoot 日志文件

1. 日志的作用2. 日志的打印2.1 在程序中获取到日志对象3. 日志级别3.1 日志级别有什么区别3.2 日志级别的分类3.3 日志级别的设置4. 日志持久化4.1 设置日志的保存目录4.2 配置日志文件的文件名5.更简单的日志输出-Lombok

2023-06-05 00:59:33 625 1

原创 SpringBoot 配置文件

在 Spring Boot 项目中如果没有配置信息,就不能连接和操作数据库, 甚至是不能保存可以用于排查问题的关键日志, 所以配置文件的作用是非常重要的。1.当一个项目中存在两种格式的配置文件,并且两个配置文件中设置了相同的配置项,但值不同时,那么 properies 的优先级更高。properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项⽬默认的配置⽂件。在我们以后开发的时候,为了更好的开发编写代码,我们可以有不同类型的配置文件:开发…数据库的连接信息(包括用户名和密码)

2023-06-03 01:28:39 1103

原创 SpringBoot 的创建和使用

Spring的出现是为了简化 Java 程序开发,而 SpringBoot 的出现是为了简化 Spring 程序开发.SpringBoot 就是 Spring脚手架。

2023-06-01 01:04:32 514

原创 Spring(Bean 作用域和生命周期)

2. 作用域定义从前⾯的课程我们可以看出 Spring 是⽤来读取和存储 Bean,因此在 Spring 中 Bean 是最核⼼的操作资源,所以接下来我们深⼊学习⼀下 Bean 对象。1. 案例1: Bean作用域的问题现在有一个公共的 Bean,通过给 A 用户 和 B 用户使用, 然后在使用的过程中 A 偷偷的修改了公共 Bean 的数据, 导致 B 在使用时发生了预期之外的逻辑错误(4)打印结果,观察起获得的公共 Bean 的值得到两个张三一个李四才是我们理想的结果。

2023-05-27 02:07:28 733

原创 Spring(五大类注解,对象的三种注入方式及其优缺点)

经过前⾯的学习,我们已经可以实现基本的 Spring 读取和存储对象的操作了,但在操作的过程中我们发现读取和存储对象并没有想象中的那么“简单”,所以接下来我们要学习更加简单的操作 Bean 对象的⽅法。在 Spring 中想要更简单的存储和读取对象的核⼼是使⽤注解,也就是我们接下来要学习 Spring 中的相关注解,来存储和读取 Bean 对象。

2023-05-24 02:52:11 2271

原创 Spring的创建与使用

1.创建 Spring 项⽬ 1.1 创建一个 maven 项目1.2 添加 spring 框架支持(spring-context/spring-beans) 2.将 Bean (对象) 存储到 Spring (容器) 中2.1 在resources中创建一个spring配置文件2.2 将 Bean 对象存储到 Spring 当中2.2.1 创建 Bean 对象2.2.2 将Bean对象配置到spring配置文件中2.3 从Spring 中读取到Bean对象2.3.1

2023-05-14 23:43:11 1051

原创 Spring基础与核心概念

Spring 是什么?我们通过百度百科可以知道:Spring 指的是 Spring Framework(Spring 框架),用于构建企业级Java应用程序。它提供了一种全面的编程和配置模型,用于开发现代化的、灵活的、可扩展的Java应用程序。1.什么是容器?容器是⽤来容纳某种物品的(基本)装置。——来⾃:百度百科对比到前面的知识点, 目前接触到的容器有List / Map --> 数据存储容器Tomcat --> Web 容器。

2023-05-14 01:06:08 369

原创 JavaEE:线程安全问题的原因和解决方案

线程不安全问题出现的原因及其解决方案1.抢占式执行多个线程的调度执行过程,可以视为是"全随机"的(也不能视为成纯的随机,但是确实在应用层程序这里是没有规律的),即无法确定先执行哪一个线程,后执行哪一个线程(通俗的来讲就是哪一个线程先抢到机会,哪个线程就先执行),抢占式执行被视为线程不安全的万恶之源,罪魁祸首(内核实现的,咱们无能为力)2.多个线程修改同一个变量相反:一个线程修改一个变量,没事多个线程读同一个变量,没事多个线程修改不同便是,没事。

2022-09-25 21:11:23 596

原创 JavaEE:synchronized关键字

synchronized的特性1)互斥多个线程如果同时针对同一个对象进行加锁时(进入修饰的代码块相当于加锁,退出修饰的代码块相当于解锁),会发生“锁竞争”,但只有一个线程(先进行加锁操作的)能够加锁成功,其他线程就会就比如说我们在追女神的时候,有好几个哥么一起追,但是不会说我先追的女神,女神就必须当我的女朋友,这是要去竞争的(这就相当于),当有一个兄弟追到了女神,我们只能眼睁睁看着(),等到女神和这个兄弟分手后再次竞争()并不会遵循先来后到的规则。

2022-09-24 22:57:23 467

原创 Java 线程的六种状态

在操作系统中,对于PCB有一个状态的描述(想了解PCB可点击这里哦)Java中觉得自带的状态不是很适合,自己有搞了一套状态规则。

2022-09-22 21:56:16 149

原创 JavaEE:Thread 类的基本用法

目录一,创建线程的方法:1.继承Thread类: 2、实现Runnable接口3、匿名内部类中创建Thread子类对象4、匿名内部类中创建Runnable子类对象5、lambda表达式创建Runnabl子类对象二,Thread 类及常见方法1.Thread的常见的构造方法2.Thread 的几个常见属性3.启动一个线程-start()start()和run()的区别:4.获取当前线程5.等待一个线程-join()6.休眠当前线程7.线程的中断1.定义一个标志位,作为线程结束的标志 2.使用标准库中自带的标志

2022-09-22 21:08:52 282

原创 JavaEE:进程和线程的区别和联系

一,什么是进程二,什么是线程 三,为什么要有线程四,进程和线程的区别和联系

2022-09-22 14:03:23 189

原创 JavaEE:进程调度的基本过程

进程是什么?操作系统对进程的调度2.1 PCB中的信息2.2 进程的调度是如何进行的呢?并行: 并发:总结:

2022-09-22 14:00:57 267

原创 C语言:动态内存管理

目录一.为什么存在动态内存分配二.动态内存函数的介绍 1.malloc2.free3.calloc 4.realloc常见的动态内存错误1. 对NULL指针的解引用操作2.对动态开辟空间的越界访问3. 对非动态开辟内存使用free释放4.使用free释放一块动态开辟内存的一部分5.同一块动态内存多次释放6.动态开辟内存未释放(内存泄漏)经典笔试题题目1题目2题目3题目4三.C/C++程序的内存开辟四.柔性数组1.柔性数组的特点 2.柔性数组的使用3.柔性数组的优势我们已经掌握的内存开辟方式有:但是上述

2022-06-21 16:56:11 846 3

原创 C语言:自定义类型——结构体与位段

目录1.结构体1.1结构的基础知识1.2结构的声明 1.3特殊的声明1.4结构的自引用1.5结构体变量的定义和初始化1.6结构体内存对齐1.7 修改默认对齐数1.8检验结构体成员偏移量函数——offsetof( )1.9为什么存在内存对齐1.10结构体内存对齐优化1.11结构体传参 2.位段2.1 什么是位段 2.2位段的内存分配2.3位段的跨平台问题 2.4位段的应用...

2022-06-19 01:51:41 340 1

原创 C语言:模块化实现通讯录

目录一,项目结构分析二,项目文件划分2.1 头文件(contact.h)2.2 源文件三,前期准备3.1,创建联系人类 3.2,创建通信录类 四,基本功能实现4.1 初始化通讯录4.2 添加联系人4.3 删除联系人4.4 查找功能4.5,修改联系人信息4.6,排序功能 4.7 添加黑名单4.8 打印输出功能4.9 函数销毁五,主函数框架 六,项目源码 6.1,contact.h文件 6.2,contact.c文件6.3,test.c文件.........

2022-06-12 16:57:31 1007

原创 JavaSE:关于图书管理系统的小练习

目录一.功能展示二,具体实现的过程2.1代码:2.1.1 具体代码1.book包1.1 Book类1.2 Booklist类2. operation 包2.1 接口IOperation2.2 AddOperation2.3 BorrowOperation2.4 DelOperation2.5 DisplayOperation2.6 ExitOperation2.7 FindOperation2.8 ReturnOperation3...

2022-05-26 10:50:41 309 9

空空如也

空空如也

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

TA关注的人

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