自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 接口自动化测试以及requests

发起一个请求,会返回一个Response对象,通过以下方法查看返回的数据属性/⽅法描述响应状态码r.content字节⽅式的响应体,会⾃动解码gzip和deflate压缩r.headers以字典对象存储服务器响应头,若键不存在则返回Noner.json()Requests中内置的JSON解析⽅法,将响应体解析为JSON格式r.url获取实际请求的URLr.encoding编码格式,根据响应头部的字符编码确定r.cookies获取服务器设置的cookiesr.raw。

2025-07-31 23:06:13 568

原创 Git原理及使用

Git是分布式管理控制系统版本控制器:记录每次的修改以及迭代的一个管理系统可以控制电脑上的所有格式的文档它能高效管理项目开发过程中的代码变更,追踪文件修改历史,支持多人协作开发。

2025-07-23 11:40:02 1256

原创 在线抽奖系统测试报告

在线抽奖系统项目采用前后端分离架构,前端使用JavaScript和AJAX技术, 后端基于SpringBoot框架实现,数据库使用MySQL,缓存使用Redis,异步任务处理使用RabbitMQ,验证用户身份使用了JWT令牌技术。登录模块包含手机号密码登录和手机号验证码登录,对于未注册的用户可点击下方注册链接跳转至注册页面进行注册操作人员管理模块包括人员列表和注册用户,注册分为管理员注册和普通用户注册,普通用户由管理员注册,没有密码,无法登录管理系统奖品管理模块包括奖品列表和创建奖品,奖品列表支持翻页效果。

2025-07-18 10:04:20 831

原创 《一文搞定验证码:前后端完整代码》

页面展示效果验证码错误验证成功。

2025-04-27 09:54:32 424

原创 Mybatis操作数据库----小白基础入门

创建一个练习的接口在resources下创建一个xml的文件,只要是在resources下就行,文件名一般与接口名对应接口和xml文件是两个不同的文件,怎么才能让他们对应起来呢在yml文件中配置mybatis:classpath表示resources,mapper表示mapper文件夹,**是通配符,Mapper.xml是文件,就是找到以Mapper.xml结尾的文件在xml文件中添加固定格式</mapper>

2025-03-09 17:05:33 734 2

原创 HTML5新元素

HTML5 是 HTML(超文本标记语言)的第五个主要修订版本,由万维网联盟(W3C)和 Web Hypertext Application Technology Working Group(WHATWG)共同推动发展。它带来了许多新特性和改进,极大地提升了网页的功能和用户体验:语义特性,本地存储特性,设备兼容特性,连接特性,网页多媒体特性,三维,图形及特效特性,性能与集成特性,CSS特性。

2025-03-06 12:04:01 1360 3

原创 Spring Web MVC基础第一篇

Spring Web MVC 是 Spring 框架的一个模块,用于构建基于 Java 的 Web 应用程序。它遵循模型 - 视图 - 控制器(MVC)设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),以实现关注点分离,提高代码的可维护性和可扩展性。

2025-01-31 21:47:31 2299 11

原创 网络层协议-----IP协议

它是以8字节为单位计数的。D类地址:多播地址,对于传统的通信来说,都是一个一对一的关系,也就是给一台主机分配一个IP地址,再给另外一台主机分配一个IP地址,两台主机之间通过这两个IP地址进行通信,而多播地址是将多个主机分配到一个组里,然后再给这个组分配一个多播地址,通过这个多播地址就可以给多台主机发送同一份数据。1.对于A类地址,网络号为8位,由于第一位固定,0和127不可分配,所以可分配的网络号数量为2^7-2,剩下的24位为主机号,网络地址和广播地址不能分配,所以可以分配的主机数量为2^24-2。

2025-01-14 18:44:25 2971 27

原创 算法第二弹-----滑动窗口

滑动窗口是一种在数据序列(如数组、字符串等)上进行操作的技术。它通过维护一个固定大小(或可变大小)的窗口,在序列上滑动这个窗口来处理数据。这个窗口可以是连续的元素区间,通过不断地移动窗口,对窗口内的数据进行各种操作,比如统计窗口内元素的和、最大值、最小值等。

2024-12-12 21:34:01 1402 27

原创 算法第一弹-----双指针

双指针通常是指在解决问题时,同时使用两个指针(变量,常用来指向数组、链表等数据结构中的元素位置),通过对这两个指针的移动和操作来高效地处理数据、查找元素、遍历结构等,从而达到降低时间复杂度、优化算法的目的。两个指针起始位置可能相同或者不同,但它们朝着同一个方向移动,比如都从数组头部向尾部移动,常用于处理需要连续遍历部分区间、查找满足特定条件的子区间等问题。常使用快慢指针。

2024-12-04 18:19:19 1829 33

原创 文件操作---IO流

I/O简单来说就是输入输出I(input)输入:读取外部的数据,将数据读取到内存(程序)中(读)O(output)输出:将内存(程序)中的数据读取到外部设备中IO通过操作流对象来对文件进行读写流对象又分为两种:1.字节流:以字节为单位来处理输入输出操作2.字符流:以字符为单位来处理输入输出操作。

2024-11-28 15:34:50 772 10

原创 模拟回显服务器

回显指当本地终端向远端设备发送数据时,远端设备将接收到的数据再发送回本地终端显示出来的过程。比如我们在命令行中输入一些指令后,服务器返回的相关信息显示在命令行界面上,这就是一种回显情况,像用“ping”命令去测试网络连通性时,返回的如IP地址、响应时间等信息的显示就是回显的体现。

2024-11-14 16:57:00 412 3

原创 CSS基础

CSS规则由两个主要的部分构成:选择器以及一条或多条声明1.选择器是用于指定CSS样式的HTML标签,花括号内是对该对象设置的具体样式2.属性和属性值以“键值对”的形式出现3.属性是对指定的对象设置的样式属性,例如字体大小,文本颜色等4.属性与属性值之间用英文“:”分开5.多个键值对之间用英文“;”进行区分<style>写在<head>里面,哪一个标签需要,就将哪个标签作为选择器所有的标签都会被修改.类名{ }形式。

2024-11-11 20:09:17 931 2

原创 HTML基础

标签用于定义描述列表(或定义列表),该标签会与<dt>(定义项目/名字)和<dd>(描述每一个项目/名字)一起使用<dl><dt><dl></dl><dl></dl><dl></dl></dt></dl>1.<dl>

2024-11-10 14:15:45 1751

原创 JAVA-----线程池

把洗浴中心看成一个线程池,当有顾客进来消费时,那么就会有一个搓澡师傅对这个顾客执行任务,不断的有顾客进来,剩下的搓澡师傅就会为其服务,如果前面的搓澡师傅服务完上一个顾客,那么这个搓澡师傅就可以接待下一个顾客,但是当有一天生意火爆时,同一时间顾客数大于搓澡师傅的数量时,这些顾客就会阻塞等待搓澡完成手里的工作,再对其进行服务。在日常开发中,虽说创建销毁线程的开销要比进程小的多,但是频繁的创建销毁线程也消耗系统资源,然而使用线程池,线程池通过对线程的复用,从而达到减少系统资源开销的效果。

2024-10-27 20:40:13 1029 2

原创 手搓一个定时器

在看警匪片时,经常会有匪徒在银行安装定时炸弹,而这里的定时炸弹就可以看成一个定时器,当设定的时间到时,炸弹就会爆炸,而我们这里的定时器是当时间到时,就会执行相应的任务在这个类中成员属性分别为要执行的任务,以及任务执行的时间,还有一个构造方法});t.start();1.在这个类中有一个优先级队列,这个是用来给各个任务执行的先后顺序进行排序的2.schedule是用来将我们要执行的任务添加到优先级队列当中的。

2024-10-27 14:02:26 948

原创 JAVA----单例模式

这种方式在成员位置声明Singlleton类型的静态变量,并创建Singleton类的对象instance。instance对象会随着类的加载而创建。如果对象足够大1的话,而一直没有使用就会造成内存的浪费。

2024-10-24 12:08:18 1483 1

原创 JAVA中线程安全问题

线程安全是指在多线程环境下,程序能够正确地执行而不会出现数据不一致、资源竞争等问题。简单来说,如果一个程序在运行时的结果符合我们的预期,那么这个程序就是线程安全的,反之,如果程序运行的结果和我们的预期不符,那么此时线程就是不安全的启动两个线程,分别对count进行50000次的++操作,然后打印count的值将上述代码多运行几次,我们会发现每一次的结果都是不一样的,且都是小于100000的出现上述这种情况就叫做“线程不安全”

2024-10-23 14:33:34 935

原创 JAVA线程的多种状态

当阻塞的原因消失后,线程会重新进入就绪状态等待执行。RUNNABLE状态表示就绪状态,意思是该状态的线程随时都可以被调度到CPU上运行或者已经在CPU上运行。创建了一个线程的对象,但是这个线程没有启动start,那么此时这个线程的状态就是NEW也就是新建状态。让t线程等待main线程执行完毕再去执行,t线程等待的过程状态就是RUNNABLE状态。这种状态属于带时间的线程阻塞,当阻塞时间一过就可以恢复至RUNNABLE状态。带时间的阻塞可以是sleep也可以是join,必须加上参数才是带时间的阻塞。

2024-10-20 17:31:52 390

原创 Thread的基本用法

在main线程中调用t.join,就是让main线程等待t线程先结束才执行,当执行到t.join,此时main线程就会“阻塞等待”一直等到t线程执行完毕,main线程才继续执行。这在多线程或多任务的环境中特别有用,可以提高程序的效率。一般来说,我们创建的线程都是前台线程,只有当一个进程里的前台线程都结束,后台线程才能结束,前台线程相当于领导,领导没走完,下属不能离开。将t线程设置为后台线程,前台线程运行10秒后结束,后台线程t也会跟这main的结束而2结束,设置为后台线程后,t线程无力住址进程的结束。

2024-10-20 10:29:42 874

原创 进程与线程的区别

进程是计算机中程序在某个数据集合上的一次运行活动,是从不同角度来看:● 资源分配角度:进程拥有独立的内存地址空间、系统资源(如 CPU 时间、文件描述符等)。每个都像是一个,在其中程序可以执行自己的任务而● 运行状态角度:进程有不同的状态,如就绪、运行、阻塞等。当进程等待资源时处于,具备运行条件且等待被 CPU 调度时为,正在被 CPU 执行时处于。● 调度角度:操作系统根据一定的调度算法,在多个进程之间分配 CPU 时间,以实现多任务的并发执行。

2024-10-19 11:07:05 377

原创 JAVA-------动态代理

动态代理是一种在运行时创建代理对象的机制。代理对象可以在不修改目标对象代码的情况下,对目标对象的方法调用进行拦截和增强。它允许在方法调用前后添加额外的逻辑,比如日志记录、性能统计、安全检查等操作。举例:在睡觉的方法当中,睡觉之前需要洗漱,如果是侵入式的写法,就会直接修改原有的代码不能修改原有的代码,又需要增加额外的功能,这样无侵入式的增加额外的功能就叫做动态代理。

2024-10-14 10:22:49 476

原创 手撕AVL树

🔖 学如逆水行舟,不进则退。

2024-10-07 15:25:15 905 32

原创 关于JAVA中Scanner和sout读取超时问题

java在处理IO时,有两套标准:1.字节流:(System.in)2.字符流:(new InputStreamReader()),以Reader或者是Writer结尾的几乎就是字符流第一步:System.in从输入设备读取数据,因为是字节流,所以通过InputStreamReader转化为字符流第二步:BufferedReader是一个带内存缓冲区的字符流。

2024-09-25 18:58:40 889 3

原创 Mysql----索引与事务

●数据库的事务是一种机制,一个操作序列,包含了一组数据库的操作命令●事务把所有的命令作为一个整体一起想系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败●事务是一个不可分割的工作逻辑单元。

2024-09-15 15:37:52 1017 3

原创 MYSQL-----视图

1.当视图创建或替换时,并且所有的上级均为加检查选项,则在插入数据时,不会对数据进行检查2.若在创建或替换视图时,视图的某一级具有检查选项,就会对数据进行检查,从下往上,第一个检查选项上面的条件都会对插入的数据进行检查。

2024-09-11 20:23:07 1325

原创 二叉搜索树

4.找到了插入位置,在让key的值比上一个节点prv的值做比较,如果key大于prv的val值,就让key的节点插入到prv的右孩子节点,如果key小于prv的val值,就让key的节点插入到prv的左孩子节点(比较确认新节点应该插入到prv的左孩子节点还是右孩子节点)因为左子树的最大值可能是目标节点的左孩子节点,所以需要判断一下左子树最大节点与去父节点的关系,如果他是其父节点的左孩子节点,就让其父节点的左孩子节点变为该节点的左孩子节点,否则其父节点的右孩子节点变为该节点的左孩子节点。

2024-09-11 14:31:43 932

原创 轻松掌握排序算法

直接插入排序的特性总结:1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定。

2024-09-08 23:25:46 884 3

原创 MYSQL————联合查询

设计数据时把表进行拆分,为了消除表中字段的依赖关系,比如部分函数依赖,传递依赖,这时会导致一条SQL查出来的数据,对于业务来说是不完整的,我们就可以使用联合查询把关系中的数据全部查出来,在一个数据行中显示详细信息两张表建立主外键关系这是两张表,而在实际生活中,我们想要的是将两张表合并,去掉不需要的部分上面这段代码就是一句简单的联合查询。

2024-08-29 16:38:10 3271 4

原创 MYSQL——聚合查询

聚合查询就是一些MYSQL中的内置函数聚合查询本质上是针对数据表中的行和行进行计算以上操作都是针对某一列进行计算的。

2024-08-27 16:03:51 1608 1

原创 表设计-----三大范式

在满足第一范式的基础上,不存在非关键字段对候选键的部分函数依赖(存在复合主键的情况下)

2024-08-26 17:11:51 1208

原创 MYSQL————数据库的约束

1.:指示某列不能存储null值2.:保证某列的每行必须有唯一值3.:规定没有给列赋值时的默认值4.:not null和unique的结合。确保某列(或两个或多个列的结合)有唯一标识,有助于更容易更快捷的找到表中的一个特定记录。5.:保证一个表中的数据匹配另一个表中的值的参照完整性。6.:保证列中的值符合指定的条件。对于MYSQL数据库,对check子句进行分析,但是忽略check子句。

2024-08-24 22:44:48 1239

原创 MYSQL----表的增删改查

1.值需要对应前面字段的顺序2.字符串类型的值用英文的单引号''包裹3.可以不写字段,但是要在values列表中按表中定义的字段的顺序设置相应的值4.对于表中设置排序的字段,在省略字段的情况下,需要写出来,对于指定了字段的时候不需要写5.一条insert into语句在values部分可以跟很多个values组手动设置新数据库的编码集。

2024-08-18 13:14:36 840 1

原创 MYSQL----表的创建

1.field字段名,也就是属性,相当于java类里面的成员属性。7.创建表中加校验------if not exists。2.一条drop语句可以删除多个表,每个表之间用逗号隔开。1.temporary 表示的是自己创建的临时表。4.字段的定义在小括号中包裹起来,最后已分号结束。3.最后一个字段的定义,结束没有逗号。6.建议每张表都设置一个编号字段。2.datetype 数据类型。如果表存在就生成一个警告信息。说明需要加''包裹起来。表示一个表的完全路径。

2024-08-17 13:24:35 281

原创 MYSQL数据类型

2.bigint常用在编号字段3.float和double类型,在表示小数的时候都不是特别精准,所以用decimal类型去表示小数4.decimal和numeric的M中不计算小数和负数,D为0则保存一个整数,M最大为65,D最大为30,如果省略D,默认为0,如果省略M,则默认为10。

2024-08-16 19:43:23 413

原创 MYSQL--对数据库的基本操作

if not exists是在不知道是否存在当前这个数据库,如果不存在当前数据库,则创建,存在则不创建也不会报警告。如果数据库名要使用MYSQL中的关键字时,在创建数据库时,库名需要被反引号引起来。3.create database[if not exists] 数据库名;使用数据库时,只使用自己创建的数据库,别的不管是什么名字都不要动。8.0中默认的排序规则是utf8mb4_0900_ai_ci。5.7中默认的排序规则是utf8mb4_general_ci。(查看当前选择或操作的是哪一个数据库)

2024-08-16 14:52:48 418

原创 二叉树练习题

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

2024-08-13 14:23:32 328

原创 Java-----二叉树

黑色箭头是二叉树,红色箭头是访问的顺序解释:从跟结点出发,先访问根节点A,再访问A的左子树,访问左子树的根节点B,继续访问B的左子树D,B的左子树访问完,访问右子树E,访问完访问A的右子树C,访问C的左子树,最后访问C的右子树所以上述二叉树的前序序列为:ABDECFG。

2024-08-04 13:23:44 768

原创 Java----队列(Queue)

使用两个队列,队列一用来存储数据,队列二始终保持空,当入栈时,将数据入队到队列二,然后将队列一的数据出队后入队到队列二,将队列一和队列二互换,使得队头放后放入的数据,队尾放先放入的数据,完成入栈。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为。在Java中,Queue是个接口,底层是通过链表实现的。

2024-07-27 22:27:32 2562 8

原创 Java-----栈

遍历一遍pushV数组,先将pushV中的元素压栈,判断栈顶元素是否和popV的j下标元素相同,相同就出栈,继续判断,直到不相同为止,当遍历完pushV时,看栈是否为空,如果为空,则说明popV是可行的出栈序列,否则不是。push方法,普通栈是必须压栈的,当普通栈压栈完成后,比较普通栈和最小栈的栈顶元素,如果普通栈的栈顶元素小于或等于最小栈的栈顶元素,那么就对最小栈进行压栈。2.一个栈的初始状态为空。pop方法,接收普通栈的栈顶元素,普通栈出栈,如果栈顶元素和最小栈的栈顶元素相同,那么最小栈也出栈。

2024-07-26 22:35:36 1160 1

空空如也

空空如也

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

TA关注的人

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