自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot的热部署工具“AND”Swagger测试工具

指的是在项目无需重启的情况下,只需要刷新页面,即可获得已经修改的样式或功能。要注意该工具一般用于开发环境,在生产环境中最好不要添加这个工具。对于无需重启便可刷新这么方便的工具,在项目中该如何使用:在spring boot 项目中使用工具的方法就是引入相关依赖,热部署工具的依赖如下:

2024-04-30 21:58:33 889

原创 Linux系统的进程,看完它,相信你想kill“it“就kill“it“o((>ω< ))o

进程在操作系统中高并发处理中产生了重要的作用。Linux作为一个操作系统,也必须要拥有这两者才可以进行高并发。使用kill命令一般是用来终结一个进程的,在之前用到的。众所周知,不管在什么系统中,线程是CPU调度的最小单位。进程是资源分配的最小单位。不仅如此,该命令还可以配合。来使用进行查找相应的进程。命令都可以查看进程的。

2024-03-07 21:27:15 310

原创 Linux的文件操作,重拳出击( ̄︶ ̄)

学习Linux的文件操作,一般需要知道一个文件如果你想要操作他,必须知道你对这个文件有什么操作的权限或者修改你自己对文件操作的权限。必须要知道文件有三种权限r:可读w:可写x:可执行在打开Linux时登录打开命令行界面输入查看当前目录下的文件命令ls或者ls -l。ls:显示当前路径下的所有文件ls -l:显示当前目录下所有文件及其文件的用户属性及其每个组可使用的权限注意这里可能无法使用ll,因为这个命令需要在配置文件中修改添加一个属性值ls -l=ll。

2024-02-24 10:34:25 880

原创 设计模式是测试模式咩?

软件的生命周期为什么要进行测试(测试的目的)?软件的设计模式1. **瀑布模型**3. 增量和迭代模型4. 敏捷模型5. 喷泉模型测试模型`V`模型`W`模型一个应用程序从出生到“死亡”会经过非常漫长的流程……

2023-11-09 22:19:12 560

原创 消息队列的模拟实现(三)

设计了目录结构和文件格式实现了目录创建和删除实现了统计文件的读写实现了消息的写入,写入数据文件消息删除 ==》随机访问文件加载所有消息垃圾回收机制===》复制算法。

2023-10-18 22:10:04 308

原创 测试用例的八大基本准则

如何来知道一个软件是否真的符合其需求,学会针对性地设计测试用例。对系统中一些接口的功能进行测试,是否达到预期效果,接口测试主要关注的是数据的传输、交互和集成。功能测试、性能测试、安全测试、可靠性测试、易用性测试、数据库测试、接口测试、兼容性测试。一般针对软件,在程序执行一些关于数据库的操作时,数据库是否可以得到正确的结果或响应。软件:测试软件的加密性,用户认证及权限控制,防御恶意攻击等方面的能力。

2023-09-27 22:37:40 533

原创 消息队列的模拟实现(二)

原因是因为 SQLite 和 MySQL是不一样的,只能执行第一条语句,后续语句直接忽略,所以每执行一次,都需要额外再写一次SQL语句。同样的在核心文件夹创建一个queue类,这里需要注意这个名字与Java中的集合类名字相同,这里因为是存储消息的队列,所以改名为。要分析绑定,就应该知道绑定的作用,绑定的作用是用来将交换机和队列进行绑定,更好的传输数据。方法,以同样的方法去修改即可,总而言之在设置Map时将传递数据的格式改为字符串,修改类中的。语句后,我们应该在代码实现一个接口来调用文件中的方法。

2023-09-15 10:09:32 389

原创 软件测试—测试用例的设计

首先,测试用例(Test Case)是为了实施测试而向被测试系统提供的一组集合。。

2023-08-31 21:22:46 622 1

原创 消息队列的模拟实现(一)

要实现一个消息队列首先需要进行项目分析,列出项目组成,然后一一细分其中功能。其实做每一个项目都是这样的,当然如果是你自己创建一个新的项目其实也是需要进行项目分析和项目组成,然后得到你所期待的功能。

2023-08-25 09:13:20 184

原创 Spring Aop组成部分

是对面向对象编程的一种补充,是一种编程思想,是对某一类的事情的集中处理。比如用户登录状态的验证状态,在之前写servlet版本的博客系统,这里就有一个登录验证而且是在每一个页面都添加了一个登录验证,在使用Aop后,只需要写一个类就可以解决这个问题。Aop。

2023-08-09 10:27:41 737

原创 获取Bean的两种方法

在五大类使用时需要注意名称的大小写来注册一个Bean对象,那么有没有更加方便的定义方法呢?添加Bean自定义名称在之后的使用中就可以使用自定义名称来作为Bean名称来调用对象。要注意一旦使用了自定义的名称作为Bean对象,原来的类名就不能使用了。

2023-07-28 21:50:30 235 1

原创 性能测试入门

首先我们来认识一下性能测试在软件测试中的重要性,也就是定义。测试人员借助性能测试工具,模拟系统在不同环境下对应的性能指标是否达到预期指标,然后根据其产生的效果尽量排除软件在使用过程中或者程序运行时存在的潜在性问题。一些性能问题:系统在高压环境下崩溃、软件在某些场景无法正常使用、在大量用户同时使用程序时,无法正常使用一些功能等等。而性能测试主要发现软件性能问题,优化软件性能,从而提升用户体验。

2023-07-21 09:30:03 303 2

原创 自动化测试selenium(1)

原因是相对路径效率高,因为效率高,所以也经常使用,对于绝对路径来说,效率低,想要查找一个元素时要从底层目录开始查找,不太可观。,这些测试都是对于代码方向上的分类标准,而对于代码的运行模式又分为两种模式。自动化脚本 ----> 浏览器驱动 -----> 浏览器。是用于对web自动化测试的一个框架,其作用范围广泛原因就是。接下来主要介绍自动化测试中的selenium的使用。copy element: 拷贝这一个元素中所有内容。自动化测试中会经常使用到自动化测试框架,而。

2023-07-17 21:32:48 521 1

原创 初识Spring

我们观察在第一种取出对象的方法中使用了强制转换,意味着当取出对象时会被直接转换为一个对象,试想一下,如果并没有取出bean对象时,返回null,null值将会被转换为一个对象,显然会出现异常。当制作一个行李箱时,原本的步骤是自己建造一个部分然后组装该部分再传递到下一个部分进行制作和组装,而现在只管制作,不管组装,大大提高的解耦和。在市场上大部分的行李箱都有大小限制,而随着行李箱的改变轮子大小也会发生改变,这里使用轮子的大小来设定行李箱的大小,所以我们设置一个。是不同的,而且他们的底层逻辑也是不同的。

2023-07-07 19:42:29 420

原创 hash冲突是什么?

当我们在一堆数据中查找一个元素时,使用普通方法得到的时间复杂度是O(N),使用搜索树的时间复杂度为O(logn),而现在告诉你有一种数据结构可以只使用O(1)的时间复杂度就可以查找,对程序的效率提升是一种质的飞跃。而这就是哈希(散列)。;capacity为存储元素底层空间总的大小。

2023-06-30 07:43:49 120

原创 hahmap和set使用与注意事项!

哈希表(hashMap)和 集合 (Set)是数据结构中比较常用的一部分,他们的特性通常可以解决很多问题,这两个数据结构是同根生,存储数据的方式也很特别。hashmap相当于一个地图,存储数据是按照键值对的方式来存储的,就等于一种类对象的数据模式。Set是一种集合,存储方式与数组差不多。不过虽然这两种数据结构与其他数据有些相同之处,不过他们最大的区别就是,set中不会存储两个相同的值,存储在set中的值都是唯一的。同样的,hashmap中的键也是唯一的。利用这两个数据的特性解决一些问题是不是会方便许多。

2023-06-29 15:04:19 147

原创 HTTP与Fiddler使用

使用POST方法,浏览器会将请求信息封装在HTTP请求体中,然后向服务器发送请求,服务器根据请求的内容进行相应的处理,并将响应结果返回给浏览器。当客户端(浏览器)需要跟服务器请求连接的时候,服务器就会生成一个cookie传递给客户端,让客户端以这个cookie为凭证连接服务器并进行通信,在之后的信息传递过程中,cookie就相对于服务器识别这个客户端是否产生过连接,提高两者通信效率。使用GET方法,浏览器会将请求信息封装在HTTP请求头中,然后向服务器发送请求,服务器根据请求的内容返回相应的响应结果。

2023-06-23 15:38:19 745

原创 UDP和TCP网络编程

首先是在硬盘中写入数据(请求),为了提高效率,数据被写入缓存区,缓存区有一个特性就是满了才会将数据进行统一提交(提交到网卡),这样才能读到请求。当计算机需要执行或者读取某个文件时,会将一部分数据加载到缓存中,下一次需要的时候,直接从缓存中获取即可,避免了不必要的磁盘读写操作,提高访问速度。一样的,可以用于存放数据的容器。根据请求数据计算响应数据,为了更简单的包装请求,不需要一个一个字节去计算,所以这里设置为字符串类型。根据请求计算响应数据,因为我们的服务是回显服务,所以只需要返回请求即可。

2023-06-19 11:41:15 2748

原创 Session和Cookie,你真的弄清了吗?

为什么需要cookie和session?在web系统发展变迁时,web发展时随着需求的不断增多,交互的存在必然会引起多步操作,引入session和cookie用于保存操作,也就是对一种状态的记录。从记录状态的角度来识别session和ccokie。就拿最简单的登录功能来解说,当我们访问一个网站时,如果在此之前我们曾经登录过,浏览器会自动帮我们填充账号和密码。而cookie和session记录的就是这一种状态,不需要我们自己去填写,浏览器会自动记录状态。

2023-06-17 10:50:21 274

原创 计算机网络-子网划分

IP协议是TCP/IP体系中最主要的协议之一,也是最重要的互联网协议之一。IP协议是32位,通常使用点分十进制来表示:如,我们最常见的本地地址127.0.0.1,以来隔开8个位。每个IP地址都是由两部分组成。

2023-06-10 19:19:09 1447 1

原创 TCP传输性能的关键因素除了流量控制,还有这些!

UDP:可靠性低,传输效率高TCP:可靠性低,传输效率相比于UDP稍微逊色两个通信协议其实都有着自己的应用场景,可以根据不同需求来决定不同的通信协议。TCP:可靠性低,传输效率相比于UDP稍微逊色两个通信协议其实都有着自己的应用场景,可以根据不同需求来决定不同的通信协议。

2023-06-01 22:38:43 366

原创 网络连接管理除了TCP三次握手,还有TCP四次挥手

综上所述,TCP连接管理中建立连接和断开连接是不同的,报文格式也是不同的。TCP三次握手中ACK和SYN几乎是同一时间发出,是一种内核态的过程。而FIN和ACK是在不同时机触发的,而ACK是内核态,速度快,而FIN是一种应用程序代码,是由人为控制,所以两个数据报很难合并。

2023-05-31 18:47:15 524

原创 死锁的成因和解决方案

锁是操作系统和程序语言中常用的同步机制,用于保证共享资源的,防止多个线程或进程同时,导致数据不一致或程序崩溃。死锁是我们在进行并发编程中需要时刻避免的一个问题。当多个线程互相等待的时候对方释放资源,系统就会出现死锁。具体来说,当一个线程,但同时它需要获取才能够继续往下执行,而另外一把锁又被其他线程占用了,这时候就会产生死锁。​ 当一个线程拿到一把锁之后,另一个线程会一直陷入等待状态,无法正常执行程序。(锁的基本特点)不可抢占一个线程拿到锁,只能由自己自动释放,不能被其他线程进行抢夺。

2023-05-29 17:12:21 778

原创 Java 线程的6种状态

进程(process)和线程(Thread)是不同的。进程是资源分配最小单位,而线程是程序调度的最小单位。作为一名程序猿,认识线程状态是学习程序调度必不可少的一部分内容,一个线程被创建,它就会处于一种状态,认识线程的状态可以更容易的利用好线程的特性及分配好内存资源,

2023-05-26 13:40:42 830

原创 HTTPS的加密技术——中间人攻击

https是基于http的一层加密技术,有两种加密方式,针对不同的数据传输可以使用不同加密算法结合使用,最常用也最安全的是双重加密技术,不过单独使用还是会有风险,对于中间人攻击这个算法也会被偷梁换柱,于是需要引入证书对症下药,以此来保障数据的安全性和完整性。

2023-05-24 12:42:20 1510

原创 MySQL查询——joininunion

解读:将需要查询的条件从两个表之间获取,然后使用连接查询,将两个表连接然后使用id这个筛选条件将属于张三的班级id和每个班级对应的id进行匹配。子查询是通过多个查询语句而后得到的查询结果,由最外层的查询语句返回最终结果,里面的查询语句是将数据范围缩小,可以对单表使用,也可以对多表使用。MySQL自连接查询可以用于解决一些特定的需求,例如查询一个表中和张三同一个班的同学、查询商品的相似商品信息等。MySQL自连接查询可以用于解决一些特定的需求,例如查询一个表中和张三同一个班的同学、查询商品的相似商品信息等。

2023-05-18 16:11:55 761

原创 Map与Set中的两大实现类✌

哈希表(hashMap)和 集合 (Set)是数据结构中比较常用的一部分,他们的特性通常可以解决很多问题,这两个数据结构是同根生,存储数据的方式也很特别。hashmap相当于一个地图,存储数据是按照键值对的方式来存储的,就等于一种类对象的数据模式。Set是一种集合,存储方式与数组差不多。不过虽然这两种数据结构与其他数据有些相同之处,不过他们最大的区别就是,set中不会存储两个相同的值,存储在set中的值都是唯一的。同样的,hashmap中的键也是唯一的。利用这两个数据的特性解决一些问题是不是会方便许多。

2023-05-16 19:27:40 418 2

原创 网络层协议

网络层协议的IP地址深入人心,不过在之前IP被设计出来时,并没有考虑到IP地址到如今已经不够用了,不过,什么也难不倒我们的科学家,对此产出了许多的解决办法,我们知道一个设备有两个IP地址,一个是主机。因为网络号的不确定性,推出子网掩码来标识网络号,以此区分网络号和主机号,同样的子网掩码也是点分十进制来表示,化成二进制时,1占的位数就是网络号,0为主机号的位数。:因为IPv6创建时间较晚,两个协议并不兼容,如果需要设备都改成使用ipv6,需要将设备进行改进或者更换设备,使用ipv6的路还是任重道远。

2023-05-15 22:07:05 358

原创 基本类型的比较VS引用类型的比较

类型的比较,在Java中有两种数据类型,一种是基本数据类型,一中是引用类型。每个基本数据类型都有对应的引用类型,而他们作为基本数据类型比较时和引用类型比较时又存在着一点点差异。

2023-05-13 19:35:29 559

原创 前端三剑客CSS篇——CSS选择器

CSS是前端三剑客不可忽略的一部分,CSS对前端来说是一个美化页面的工具,而且其功能十分强大,程序员可以如果熟练运用的话可以‘随心所欲’的更改页面的样式,使得页面更加美观。CSS标签是由的模式来排列的。

2023-05-11 16:38:25 671

原创 跟着排序学时间复杂度

时间复杂度是打开数据结构大门的第一步,学会计算时间复杂度对我们编写程序提高程序运行效率有很大的帮助,如何计算时间复杂度,时间复杂度指的是一个变量被使用了多少次,统计使用次数。我们一般使用大O阶方法,随着问题规模的增大,其中n与f(n)增长速度基本相同。就拿我们最常用的选择排序,他的时间复杂度如何计算呢?首先我们需要了解如何判定一段代码的一般我们计算时间复杂度都是以去考虑。使用常数 1 来取代运行时间中所有的加分常数。计算时间复杂度需要将个位数去除,只保留最高系数项,其他的数并去除。

2023-05-10 11:53:46 439

原创 优先级队列(大根堆与小根堆)

优先级队列(PriorityQueue)其实就是所谓的堆,堆是一颗完全二叉树下的一种形态。存储数据在堆中为何是完全二叉树呢?是这样的,使用完全二叉树时可以避免空间的浪费,这也是堆的存储模式特别之处,如果是一些不连续的数组,采用顺序表存储更好。堆的使用:这是最简单的创建一个堆,我们可以看见,堆的特别之处是可以用于排序,所以对于排序的几种方法中,就有堆排序这种方案,Java中提供的默认堆是大根堆。堆分为两种,大根堆和小根堆。

2023-05-05 13:39:35 2654

原创 初识HTML

HTML的全称为超文本标记语言,是一种标记语言。在html中都特殊标签,换行标签,编译器无法识别内容中的换行,需要使用换行标签进行换行,相同的,编译器也无法识别内容中的空格个数,也需要使用一个字符串来代替换行。段落标签在一些文章中很常见,对于一些长文本,需要对文本进行段落划分时,就需要使用到p标签,如果没有使用p标签,网页是无法识别你的文本是分为多少段进行描述的。注释标签,就像之前所学那样,只是程序员自己对代码的一种解释说明,而对用户并没有其他用处的一种方式,所以在注释标签中写的内容并不会在网页上显示。

2023-05-03 16:12:32 682

原创 hibernate多对多关系表的搭建和‘增删改查’

众所周知,数据库有三种数据模型,一对一,一对多,多对多,在前面的文章中主要介绍了一对一和一对多的表关系搭建和使用sql语句进行增删改查。使用hibernate框架主要分为三步:创建类创建映射文件添加配置文件。

2023-04-27 14:18:22 512

原创 Java文件字符流和字节流中的实战

针对文本文件,Java提供了一组类——”字符流“,代表类(Reader,Writer)。同样的,Java也为二进制文件提供了一组操作类——”字节流“,代表类(InputStream,OutputStream)。其实这两种的对文件操作原理是相同的,只是针对的文件不同,所以才有了字符流和字节流之分。因为有了字节流与字符流之分,所以相对应的,字节流最低读写字符是”一个字节“,字符流也有对应限制,字符流最低读写”一个字符 “。3.在判定的查询的词中,是否存在上述内容。,不同的文件,操作方法也不尽相同。

2023-04-22 14:07:33 448 1

原创 认识Java文件操作和IO流

文件目录及文件的创建与删除操作,当然还有更多的其他操作,我所列举的都是一些比较常用的文件操作,希望小伙伴们可以熟练运用,今天的分享就到这里。一般的文件操作都是针对于硬盘,也就是外存,比如说我们常用的数据库MySQL也是对硬盘的操作,还有文件IO操作也是对硬盘的操作。使用Java代码操作文件,就会使用到Java中的File类,利用对象来操作内存中的文件,修改文件或者创建文件。我们所说的文件一般指的是硬盘文件,其实文件不止硬盘文件这一种文件,还有其他特殊文件。可以看到一般是使用路径对文件的创建。

2023-04-19 12:20:22 381

原创 线程安全的锁策略,你到底忽略了多少?

挂起等待锁🔒:(重量级锁)在解锁后,挂起等待锁会自动放弃等待时机,相当于挂起等待锁不会去一直等待锁,而是需要锁时,而且锁是空闲状态,才会进行加锁,自旋锁是一种。,在执行加锁操作时,会先判定是否会造成死锁,也就是对其线程判定一下是否在此之前已经加锁,如果已经加锁,会进行解锁,同一线程的加锁操作,直接‘放行’。的锁,因为是轻量级锁,所以消耗的资源少,不过长时间寻找锁也会导致CPU消耗,而且在寻找锁时是不能做其他任务的。读写锁🔒:锁如其名,对数据的读加锁,对数据的写加锁,然后再进行完操作后,解锁。

2023-04-14 08:05:07 365 1

原创 UDP/TCP的相关性你知道几个?

网络协议的五层模型中应用层与程序员契合度最高,协议约定和组织数据格式都是由程序员决定的。传输层中两大主角UDP/TCP中,UDP的数据稳定但是适用场景不多对于TCP的四大特性,和对数据的传输中的困难和出现的错误都有针对的解决方案,对于TCP中序号的传递可以知道数据传输中的错误和应对错误的解决方法。以上,希望能帮助大家理解UDP/TCP的特性。

2023-04-12 08:38:02 213 1

原创 计算机网络的IP你知道是什么意思吗?

计算机的发展历史对于中国的历史来时,并不是很长,虽然时间不长,却有撼动世界的力量,随着第一台计算机(马克一号)的出现,我们慢慢地感受到科技改变着我们周围,互联网公司也随着时代的在不停的发展。计算机开启了一个新的时代——网络信息时代,网络信息时代的一些重要特征就是数字化,网络化和信息化,是一个以网络为核心的信息时代。网络主要分为三大类:1.电信网络2.有线电视网络3.计算机网络。

2023-04-10 19:08:49 661

原创 Hibernate多表关联——(一对多关系)

hibernate是连接数据库使得更容易操作数据库数据的一个框架,在上期我们演示了单表建立查询。接触过数据库的都知道数据库表有三种关系,。而接下来我们在hibernate中建立关系,首先应该检查一下数据库是否打开,根据,接下来继续建立表的关系。

2023-04-05 17:31:32 1832 4

空空如也

空空如也

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

TA关注的人

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