自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 抽奖系统Web自动化实战---测试报告

本文档详细记录了抽奖系统的功能测试过程,主要包含以下内容: 测试概述 测试目标:验证管理员/用户注册登录、奖品管理、活动创建、抽奖等核心功能 环境配置:Windows 11本地测试环境与Ubuntu云服务器环境,使用Selenium+Java进行自动化测试 核心测试场景 注册登录:测试空值校验、格式校验、重复注册等异常场景 奖品管理:验证创建奖品、列表展示、分页功能 抽奖活动:测试活动创建、人员奖品关联、状态流转 抽奖流程:完整测试抽奖动画、奖项切换、结果分享全流程 测试成果 发现并修复了手机号校验、分页跳

2026-08-17 17:27:21 183

原创 浅谈UDP协议

摘要:UDP是一种无连接、不可靠的传输层协议,以数据报为单位进行全双工通信。其报文由8字节报头(包含端口号、长度和校验和)和载荷组成。UDP适用于实时性要求高、允许少量丢包的场景(如视频通话、DNS查询)及广播/组播场景。但UDP报文最大仅64KB,且易受MTU限制影响,传输大数据时需应用层自行实现拆包组包逻辑。(149字)

2026-06-24 17:51:41 182

原创 HTTPS的工作流程

HTTPS协议通过加密技术保障数据传输安全。它结合对称加密(同一密钥)和非对称加密(不同密钥)实现安全通信:先通过非对称加密交换对称密钥,再用对称密钥加密数据。为防止中间人攻击,HTTPS引入数字证书机制,客户端通过验证证书真伪(比较校验和)确保公钥未被篡改,从而建立安全连接。这种多层加密方案有效防止了密钥泄露和数据窃取,使HTTP通信从明文传输升级为加密传输。

2026-06-09 20:14:10 420

原创 浅谈HTTP协议

HTTP协议摘要 HTTP(超文本传输协议)是用于Web通信的应用层协议,支持文本、图片、视频等数据传输,采用客户端请求-服务器响应的交互模式。其报文由首行、头字段、空行和正文组成,请求首行包含方法(GET/POST等)、URL(含协议、地址、路径等要素)和版本;响应首行包含状态码(如200成功、404未找到)。关键区别在于:GET请求数据通过URL查询字符串传递,常用于获取数据;POST通过请求正文传输数据(支持表单、JSON等格式),多用于提交数据,两者本质相同但使用场景不同。协议广泛应用于网页、App

2026-06-09 16:08:03 321

原创 浅谈Redis(2)

Redis采用「惰性删除+定期删除」组合策略管理过期Key:1)惰性删除在访问时检查Key是否过期,CPU开销小但可能导致内存浪费;2)定期删除每100ms随机抽查部分Key进行清理,能主动释放内存但存在遗漏可能。进阶方案包括优先级队列(优先处理最早过期Key)和时间轮算法(分时段轮询),后者通过多圈标记支持长过期时间。两种基础策略互补,在CPU效率和内存释放间取得平衡。

2026-06-02 21:14:53 247

原创 浅谈Redis(1)

redis是基于内存,持久化的键值型,非关系型数据库

2026-05-31 11:35:33 269

原创 在线OJ系统功能演示与详解

本文介绍了一个基于微服务架构的在线判题系统(OnlineJudge),该系统对标LeetCode等主流刷题平台,实现了用户管理、题库管理、竞赛管理、自动判题等核心功能。系统采用Nacos作为注册中心和配置中心,使用SpringCloudGateway作为网关,通过RabbitMQ实现异步判题,并采用Docker进行环境隔离。技术栈还包括Mybatis-Plus、Redis、Elasticsearch等组件,实现了权限认证、数据加密、异常处理等机制。系统分为管理端和用户端,管理端提供题库和竞赛管理功能,用户端

2026-05-26 20:32:21 664

原创 java线程的状态

(仅被创建出来还没有执行线程里面的逻辑)例如我在main线程里面去创建t线程,在t线程里面我需要执行的代码逻辑是打印"hello thread",此时t线程虽然被我创建出来了,里面也有它的代码执行逻辑,但是我还没有去启动t线程,在此时我去获取t线程的状态就是NEW状态。

2025-11-02 22:00:50 575

原创 总结Thread类的基本用法

在匿名内部类外面调用start方法,接着在写后续代码的逻辑。

2025-10-31 22:49:10 807

原创 Thread类中run和start的区别

当代码执行到t.start(),这时会开启一个新的线程(我们叫做t线程),这时我们的程序中就有了两个线程,一个是原来的主线程(main线程),另外一个是我们通过start方法创建的t线程,(当然也可以说是当执行到start方法前只有一个执行流,执行start方法之后就有了两个执行流),这时t线程就会去执行run方法里面的逻辑,打印hello thread,main线程接着往后执行之后的逻辑,打印hello main,所以我们可以看到hello thread,hello main交替出现的情况。

2025-09-24 21:57:50 291

原创 进程与线程

程序的一次执行过程这里举个简单的类比:程序:相当于做菜的食谱进程:相当于厨师按照这本食谱做菜的“过程”注意:同一个程序可以同时启动多个进程(也就是说厨师可以按照食谱做菜可以有多个过程)二.线程的定义:线程是轻量级的进程(轻量级主要以现在线程的创建与销毁的系统开销比进程小很多)

2025-09-22 23:32:49 328

原创 叙述栈与队列

push()方法是入栈(压栈)的操作,就是将一个元素从栈顶压入栈里面底层原理:(基于数组)先判断数组是否满了,满了就扩容,再把元素放在usedSize的位置,没满直接放在usedSize的位置,最后usedSize++(usedSize记录下数组中有效元素的个数)图示://数组在MyStack类中已定义了(public int [] elem;//usedSize在MyStack类中也已定义(public int usedSize;),用来记录数组中元素的有效个数。

2025-08-08 09:05:15 613

原创 手写ArrayList:理解动态数组的工作原理

本文介绍了ArrayList的实现原理及手动实现方法。ArrayList是基于数组的动态顺序表,具有查找高效(O(1))、连续存储空间和按插入顺序保存元素的特点。文章详细讲解了如何手动实现MyArrayList类,包括核心方法的实现:构造初始化、add(尾部/指定位置插入)、扩容、显示元素、查找元素、获取/修改元素、删除元素及清空操作等。同时强调了异常处理(如位置合法性检查、空表判断)和常量管理的重要性,通过自定义PosIllegalityException和EmptyException异常类,以及Cons

2025-07-04 17:22:47 729

原创 谈java中的多态

多态是面向对象编程的三大核心特性之一,它允许不同对象对同一行为做出差异化响应 ,其实也就是在调用同一方法,根据不同对象,表现出不同行为。例如:当我们在调用“发出声音”这个方法时,如果传递的参数是羊就会发出“咩咩咩~~”的叫声,是狗就会发出“汪汪汪~~”的叫声。

2025-03-23 19:07:58 1522

原创 谈java数组(2)

我们创建的数组可以用来储存数据(数据在堆上放着),等需要时我们在从中取出来。

2025-03-18 22:29:32 936

原创 谈java中的数组(1)

数组是什么,如何创建数组以及如何初始化,怎么使用数组,数组的本质是什么

2025-03-15 20:29:56 791

原创 C语言常见进制转化

C语言中的二进制,八进制,十进制,十六进制他们相互之间的转换

2025-03-02 14:03:58 3626

原创 浅谈C语言分支循环结构(2)

只能用于循环(while, for, do while)和switch语句中。直接终止当前循环,不再进行后续迭代;但在嵌套循环中,break仅终止最近一层的循环防止“case穿透”(即执行完一个case后继续执行下一个case) 程序从main函数进去之后,先创建一个变量i并初始化为0,接着来到while循环语句这里,进行条件判断,看i是否满足条件(如果满足条件就进入while循环里面,执行循环体;如果不满足条件,就不进入循环体里面,直接到 return 0;结束程序的运行),当

2025-02-09 15:40:27 2080

原创 浅谈C语言分支循环结构(1)

C语言是一门结构化的程序设计语言,这里所指的结构化是指顺序结构选择结构循环结构。其实我们的日常生活所见的事情无外乎就是由这三种结构或者这三种结构组合而成。二.顺序结构2.1 顺序结构的解释顺序结构是一种线性程序结构,程序中的语句按照从上到下的顺序依次进行,每个语句只执行一次,执行完之后就不再执行。2.2代码演示int main()int a = 3;int b = 5;return 0;我们知道main函数是C语言程序执行的入口,进入main函数以后,第一步。

2025-02-06 22:58:49 1152

原创 《我的编程之旅:目标与规划》

嘿,大家好呀!我目前是一名大二的工科生。今年接触到编程,学习之后对编程很感兴趣,通过不断地学习,来实现自己的编程目标。

2025-01-21 12:13:39 186

空空如也

空空如也

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

TA关注的人

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