自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【项目】幸运抽奖 测试报告

大学期间,专业班级经常举办一些xxx活动,并伴随着一些抽奖行为,同时在此期间我希望通过实际项目来加深对Java编程语言和相关技术的理解。抽奖系统刚好可以作为一个实际应用,可以让我将理论知识与实践相结合。1.2项目目标于是我希望提供一个功能全面、操作简便、安全可靠的抽奖系统。a.该项目最主要的业务就是抽奖。b.抽奖活动配置:为了支持抽奖业务,管理端支持管理用户、管理奖品、管理抽奖活动,以支持管理员配置抽奖活动信息,配置完成后管理员即可开始抽奖。

2025-03-21 16:18:10 584

原创 【项目】畅音天地 测试报告

作为一个音乐爱好者,想要拥有属于自己的一个音乐播放器,可以实现自己上传音乐,播放音乐,让更多同学可以体验到自己设计到产品,结合自己所学知识完整的设计出一个产品。这也是一个理论与实际相结合的好的机会。1.2项目目标按照自己的想法,做出一个可以自己上传音乐,播放音乐的产品。•登录功能方面考虑到安全,加入了加密算法Bcrypt。•对于播放音乐,涉及到了播放的第三方插件的引入与使用。•每个功能都涉及到了前端和后端的共同设计,如:响应报文的统一设计。•项目也考虑到了使用拦截器来拦截指定的路径内容。

2025-03-20 11:05:22 539

原创 HashSet 扩容的底层机制说明

HashSet的底层就是HashMap(底层是数组+链表/红黑树),当添加元素时先得到其hash值再转换成索引,找到存取数据的table,看这个位置是否已经存放了元素,如果没有,则直接存放,如果有,调用equals后看是否相同,如果不相同,则放在则添加到最后,相同则放弃添加。1.HashSet的底层就是HashMap,第一次添加元素时,table数组会扩容到16,加载因子是0.75,临界值是16*0.75==12(当HashSet里的元素超过12时就会进行第二次扩容)。

2025-03-04 17:07:47 341

原创 Web⾃动化测试及常用函数

WebDriverManager是⼀个开源Java库,以完全⾃动化的⽅式对Selenium WebDriver所需的驱动程 序(如chromedriver、geckodriver、msedgedriver等)进⾏管理(即下载、设置和维护)。但是可以使⽤sendkeys来上传指定路径的⽂件,达到的效果是⼀样的。通常代码执⾏的速度⽐⻚⾯渲染的速度要快,如果避免因为渲染过慢出现的⾃动化误报的问题呢?我们的⾃动化脚本⼀般部署在机器上⾃动的去运⾏,如果出现了报错,我们是不知道的,可以通过抓 拍来记录当时的错误场景.

2025-03-04 17:07:24 813

原创 Git基础笔记

Git是一个免费的、开源的。

2024-12-09 21:05:10 329

原创 ArrayList 扩容机制及底层代码

意思非常简单就是 initialCapacity>0,就按initialCapacity的大小创建集合,initialCapacity==0,就按10的大小创建集合,initialCapacity<0就报错。意思是 elementData数组此时的容量小于添加元素后起码要有的最小容量,此时就要执行grow(minCapacity) 方法进行扩容。意思是如果 elementData是空的数组,就让DEFAULT_CAPACITY和minCapacity比大小。以上为我个人的小分享,如有问题,欢迎讨论!

2024-12-09 21:05:01 960

原创 在Ubuntu相关Linux发⾏版操作系统上进行Java项目的简单部署

Xshell 可以直接拖动⽂件到窗⼝, 达到上传⽂件的⽬的, 如果使⽤其他客户端,不⽀持⽂件的上传, 需要 借助lrzsz命令。此处安装的是OpenJDK, OpenJDK是⼀个开源版本的 JDK, 和 Oracle 官⽅的 JDK 略有差别。实际⼯作中, 开发环境, 测试环境以及⽣产环境的配置都是不⼀样的。如果我们需要重启服务, 或者重新部署等, 都需要先停⽌之前的服务.按照之前的数据库建表脚本, 在服务器上运⾏, 建⽴相同的表结构。端⼝号写需要开放的端⼝号, 多个端⼝号以逗号分割。

2024-12-07 16:50:32 845

原创 Linux 常⽤命令

说明: cp指令⽤于复制⽂件或⽬录,如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存 在的⽬录,则它会把前⾯指定的所有⽂件或⽬录复制到此⽬录中。当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬ 录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源 ⽂件均移⾄⽬标⽬录中。-f 或 --force 强⾏复制⽂件或⽬录, 不论⽬的⽂件或⽬录是否已经存在。

2024-12-07 16:50:27 996

原创 MD5算法加密笔记

也就是⽆法解密. 通常⽤来检验数据的完整性的重要技术, 即对数据进⾏哈希计算然后⽐ 较摘要值, 判断是否⼀致. 常⻅的摘要算法有: MD5, SHA系列(SHA1, SHA2等), CRC(CRC8, CRC16, CRC32)如果⽤户输⼊的密码和盐值⼀起拼接后的字符串经过MD5加密后, 得到的密⽂与数据库存储的密文相同, 我们就认为密码正确。我们采⽤为⼀个密码拼接⼀个随机字符串(盐)来进⾏MD5加密,然后我们把盐和MD5加密的密文拼接后存储到数据库。以上为我个人的小分享,如有问题,欢迎讨论!

2024-11-27 13:39:06 313

原创 JWT令牌

1.令牌技术令牌其实就是⼀个⽤户⾝份的标识, 名称起的很⾼⼤上, 其实本质就是⼀个字符串2.令牌的优缺点优点:1.解决了集群环境下的认证问题2.减轻服务器的存储压⼒(⽆需在服务器端存储)缺点:需要⾃⼰实现(包括令牌的⽣成, 令牌的传递, 令牌的校验)当前企业开发中, 解决会话跟踪使⽤最多的⽅案就是令牌技术3.JWT令牌JWT令牌就是众多令牌的一种。

2024-11-27 13:38:47 988

原创 Spring事务笔记

什么是事务?事务会把所有的操作作为⼀个整体, ⼀起向数据库提交或者是撤销操作请求. 所以这组操作要么同时成 功, 要么同时失败。

2024-11-26 15:40:05 1065

原创 留言板(复制粘贴直接就能用!!!)

注意:url,库名,username,password,driver-class-name以自身为准。创建springboot⼯程,并导⼊ mybatis的起步依赖、mysql的驱动包。以上为我个人的小分享,如有问题,欢迎讨论!都看到这了,不如关注一下,给个免费的赞。MessageController类。MessageService类。MessageMapper接口。MessageInfo类。

2024-11-26 15:39:44 252

原创 统⼀异常处理

在具体的SSM项目开发中,由于Controller层为处于请求处理的最顶层,因此肯定需要在Controller里捕获所有异常,并且做适当处理,返回给前端一个友好的错误码。捕获所有异常,并且做适当处理的过程类似。故会有大量重复的、冗余的异常处理代码。将这些重复的部分抽取出来,使得异常的处理有一个统一的控制中心点。统⼀异常处理其实就是捕获异常后,处理信息后返回一个结果。假如我们要实现统⼀异常处理。使用TextController进行测试我们统一返回Result 对象。

2024-11-23 10:40:04 360

原创 Spring AOP

就需 要把private改为public. 引⽤⽅式为:

2024-11-23 10:39:45 1197

原创 拦截器的使用

1.拦截器执⾏流程拦截器是Spring框架提供的核⼼功能之⼀, 主要⽤来拦截⽤户的请求,开发⼈员提前预定义⼀些逻辑, 在⽤户的请求响应前后执⾏. 也可以在⽤户请求前阻⽌ 其执⾏拦截器执⾏流程. 执⾏⽅法,这个⽅法需要返回⼀个布尔类型的值., 继续访问controller中的⽅法.(controller中的⽅法也不会执⾏)controller当中的⽅法执⾏完毕后,再回过来执⾏这个⽅法以及⽅法,执⾏完毕之后,最终给浏览器响应数据.2.拦截器的使用1.定义拦截器2.注册配置拦截器。

2024-11-19 15:36:14 633 1

原创 统⼀数据返回格式快速⼊⻔

1.supports⽅法: 判断是否要执⾏beforeBodyWrite⽅法. true为执⾏, false不执⾏. 通过该⽅法可以。如果⼀些⽅法返回的结果已经是Result类型了, 那就直接返回Result类型的结果即可。多测试⼏种不同的返回结果, 发现只有返回结果为String类型时才有这种错误发⽣。2.降低前端程序员和后端程序员的沟通成本,因为所有接⼝都是固定的返回格式。选择哪些类或哪些⽅法的response要进⾏处理, 其他的不进⾏处理.1.⽅便前端程序员更好的接收和解析后端数据接⼝返回的数据。

2024-11-19 15:35:45 662 1

原创 动态SQL

动态 SQL 是Mybatis的强⼤特性之⼀,能够完成不同条件下不同的 sql 拼接接下来我们会使用的数据表如下:对应的实体类为:UserInfo所有的准备工作都在如下文章。MyBatis 操作数据库入门-优快云博客什么是MyBatis?

2024-10-10 16:45:13 808

原创 插件生成XML

以上为我个人的小分享,如有问题,欢迎讨论!都看到这了,不如关注一下,给个免费的赞。认准generator文件配置的位置。XML的一系列代码都会自动生成。generator文件的内容。配置路径的位置已用红框标出,生成mapxml文件看准。

2024-10-10 16:44:16 889 1

原创 使用XML实现MyBatis的基础操作

接下来我们会使用的数据表如下:对应的实体类为:UserInfoMapper所有的准备工作都在如下文章。MyBatis 操作数据库入门-优快云博客什么是MyBatis?

2024-10-08 23:49:16 1072

原创 使用标签实现MyBatis的基础操作

接下来我们会使用的数据表如下:对应的实体类为:UserInfoMapper所有的准备工作都在如下文章。MyBatis 操作数据库入门-优快云博客什么是MyBatis?

2024-10-08 16:06:30 938 1

原创 MyBatis 操作数据库入门

什么是MyBatis?MyBatis是⼀款优秀的 持久层 框架,⽤于简化JDBC的开发Mybatis操作数据库的入门步骤:1.创建springboot⼯程2.数据库表准备、实体类3.引⼊Mybatis的相关依赖,配置Mybatis(数据库连接信息)4.编写SQL语句(注解/XML) ,进行测试了解更多MyBatis中文网1.创建springboot⼯程创建springboot⼯程,并导⼊ mybatis的起步依赖、mysql的驱动包。

2024-10-07 19:14:24 988 1

原创 Spring Boot ⽇志

我们可以通过⽇志记录这个系统的运⾏状态,对数据进⾏分析, 设置不同的规则, 超过阈值时进⾏报警。如果我们的⽇志都放在⼀个⽂件中, 随着项⽬的运⾏, ⽇志⽂件会越来越⼤, 需要对⽇志⽂件进⾏分割。2.ERROR: 错误信息, 级别较⾼的错误⽇志信息, 但仍然不影响系统的继续运⾏。⽇志级别是开发⼈员⾃⼰设置的. 开发⼈员根据⾃⼰的理解来判断该信息的重要程度。2.⽇志对象的打印⽅法有很多种,我们可以先使⽤ info() ⽅法来输出⽇志。⽇志级别代表着⽇志信息对应问题的严重性, 为了更快的筛选符合⽬标的⽇志信息。

2024-10-05 15:17:03 1410

原创 SpringBoot 配置⽂件

如下代码所示:UserController类。

2024-10-02 17:39:19 1055

原创 Spring DI 笔记

DI:依赖注⼊依赖注⼊是⼀个过程,是指IoC容器在创建Bean时, 去提供运⾏时所依赖的资源,⽽资源指的就是对象简单来说, 就是把对象取出来放到某个类的属性中.关于依赖注⼊, Spring也给我们提供了三种⽅式:1.属性注⼊(Field Injection)2.构造⽅法注⼊(Constructor Injection)3.Setter 注⼊(Setter Injection)都是使用@Autowired实现的。接下来,我们分别来看.

2024-10-01 17:09:18 1085 1

原创 Spring IoC笔记

也就是说, 当需要某个对象时, 传统开发模式中需要⾃⼰通过 new 创建对象, 现在不需要再进⾏创 建, 把创建对象的任务交给容器, 程序中只需要依赖注⼊ (Dependency Injection,DI)就可以了. 这个容器称为:IoC容器. Spring是⼀个IoC容器, 所以有时Spring 也称为Spring 容器。@Controller , @Service , @Repository ,@Configuration.这些注解被称为 @Component 的衍⽣注解。

2024-09-30 18:27:56 1204

原创 Spring Web MVC课后作业

加法计算器功能, 对两个整数进⾏相加, 需要客⼾端提供参与计算的两个数, 服务端返回这两个整数计算 的结果。提交留⾔: ⽤户输⼊留⾔信息之后, 后端需要把留⾔信息保存起来。需求: ⽤户输⼊账号和密码, 后端进⾏校验密码是否正确。留⾔: ⻚⾯展示时, 需要从后端获取到所有的留⾔信息。2.如果正确, 跳转到⾸⻚. ⾸⻚显示当前登录⽤户。以上为我个人的小分享,如有问题,欢迎讨论!3.后续再访问⾸⻚, 可以获取到登录⽤户信息。都看到这了,不如关注一下,给个免费的赞。3.接⼝描述:查询当前登录的⽤⼾。

2024-09-26 18:47:49 604

原创 Spring Web MVC⼊⻔

1.什么是 Spring Web MVC?,从⼀开始就包含在 Spring 框架中。它的 正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring MVC".1.什么是Servlet呢?Servlet 是⼀种实现动态⻚⾯的技术. 准确来讲Servlet是⼀套 Java Web 开发的规范,或者说是⼀套Java Web 开发的技术标准.(只有规范并不能做任何事情)2.MVC 是什么?它是软件⼯程中的⼀种。

2024-09-25 16:13:06 1242

原创 Cookie和Session

登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户再次发送请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户的状态。服务器同⼀时刻收到的请求是很多的. 服务器需要清楚的区分每个请求是从属于哪个⽤⼾, 也就是属于 哪个会话, 就需要在服务器这边记录每个会话以及与⽤⼾的信息的对应关系。(1)Cookie 是客⼾端保存⽤⼾信息的⼀种机制. Session 是服务器端保存⽤⼾信息的⼀种机制.

2024-09-24 17:11:00 909

原创 Trie树(字典树)

Trie树,又称字典树,是用来高效存储和查找字符串集合的一种数据结构查找时,可以高效的查找某个字符串是否 在Trie树中出现过,并且可以查找出现了多少次利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。1.2主要性质1.根节点不包含字符,除根节点外的每一个子节点都包含一个字符。2.从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。3.每个节点的所有子节点包含的字符互不相同。

2024-08-25 23:25:41 1023

原创 HTML表单标签

表单一般用来收集用户的输入信息并将数据传输到服务器,从而实现用户与Web服务器的交互。... [form 的内容]</form><input type="submit"value="按钮"/></form>显示效果说明:1.action:表单提交到哪2.method:表单的提交方式POST或GET,默认值是GET。get和post 有什么区别呢?get:表单信息以明文方式发送(非安全),网址长度不能超过2048个字符。

2024-06-14 12:20:51 816 1

原创 HTML列表和表格标签

接下来我们逐一添加属性(因为我们只是看看添加属性后的效果,就不分表头和表身了)Emment语法:table>(tr>th*3)*4。以上为我个人的小分享,如有问题,欢迎讨论!实现问答和解释的效果,dd有默认缩进的效果。都看到这了,不如关注一下,给个免费的赞。Emment语法:ul>li*3。Emment语法:ol>li*3。Emment语法:dl>dt+dd。2.1表格标签的属性。

2024-06-13 17:03:30 1275 1

原创 HTML入门

【宋】李禺两相思【宋】李禺

2024-06-13 11:45:50 989 1

原创 Spring Boot入门

Spring Boot 的诞⽣是为了简化 Spring 程序开发的,如果你不太了解什么是Spring Boot,可以看下Spring官⽅的介绍。

2024-06-08 17:34:34 1488 1

原创 快速幂算法

游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1号位置,…,依此类推,第 n−m 号位置上的小伙伴走到第 0 号位置,第 n−m+1 号位置上的小伙伴走到第 1 号位置,…,第 n−1号位置上的小伙伴顺时针走到第 m−1号位置。1.即用二进制表示b,将a^b用a^(2^0),a^(2^1),a^(2^2),…最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,…x号小伙伴 1轮后走到 (x + m) % n 号位置。

2024-06-07 17:27:10 954

原创 并查集算法

逐字拆解一下,并、查、集。这个三个字,其中前面两个字都是动词,第三个字是个名词。(1)并查集可以进行集合合并的操作(并)(2)并查集可以查找元素在哪个集合中(查)(3)并查集维护的是一堆集合(集)基本原理:每个集合用一棵树来表示。树的编号就是整个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点并查集算法无论是集合合并还是元素查询,时间复杂度都是接近 0(1)。

2024-06-05 21:16:07 1476

原创 了解Maven,并配置国内源

基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通 过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件。等流程, 每次代码的修改, 都需要经过 这些流程, 如果代码反复调试修改, 这个流程就需要反复进⾏, 就显得特别⿇烦,, ⽽Maven 给我们提供了。当项⽬⽐较复杂时, 我们就会有Jar包冲突的问题, 这时候就需要去解决依赖冲突. 解决冲突之前, 需要先 找到冲突,当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置,

2024-06-03 00:21:00 4974 2

原创 字符串哈希

故求出s[l1, r1] 和 s[l2,r2]对应的字符串的哈希值h[s[l1, r1]] h[s[l2, r2]],并判断是否相等。给定一个长度为 n 的字符串,再给定 m个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2]这两个区间所包含的字符串子串是否完全相同。我们的做法是:将字符串一一映射为数字,两个数字相等,等价于字符串相等。接下来 m 行,每行包含四个整数 l1,r1,l2,r2,表示一次询问所涉及的两个区间。注意,字符串的位置从 1 开始编号。

2024-06-01 14:27:16 857 1

原创 二分查找算法

起初,机器人在编号为 0 的建筑处。如果 H(k+1)>E,那么机器人就失去 H(k+1)−E 的能量值,否则它将得到 E−H(k+1)的能量值。2.x表示我们分出的小巧克力的边长,很显然我们的目的是在区间1≤x≤max(Hi,Wi)内确定一个最大的边长x,使得第i块巧克力可以分成若干小块巧克力(注意不可拼接),所有巧克力的若干小块加起来的数量恰好等于k(小朋友的数量)。1.随着我们分出的小巧克力的边长越长,能分给的小朋友的数量就会越少(但每个小朋友得到的巧克力的面积就会越大),故这题显然是一个二分。

2024-05-31 16:39:15 1632 2

原创 UDP数据报套接字编程入门

其实就是:客户端向服务端发送请求,一般来说我们的服务端会对我们发送的请求进行处理,我们这里为了简单,就省略里面的处理过程,只实现将请求重新发回客户端,不做任何处理。由于requestpacket是从客户端来的数据报,故得到的InetAddress对象就会包含了客户端的IP和端口号。补:一个主机上的端口号,只能被一个进程绑定,但一个进程可以绑定多个端口号。流没有关闭的情 况下,是无边界的数据,可以多次发送,也可以分开多次接收。对于服务器来说,需要不停的收到请求,返回响应,收到请求,返回响应。

2024-02-29 23:55:49 1434 2

原创 网络初识(概念入门)

网络通信过程中,需要涉及到的细节方方面面,如果只有一个协议来完成通信,则这个协议无比复杂,非常不利于学习和维护。地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制 0/1数据来传输,如何告诉对方发送的数据是什么样的呢?地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进 程来接收这个数据呢?在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类 (使用方,使用服务)都必须共同遵从的一组约定、规则。

2024-02-27 00:10:38 1964 4

空空如也

空空如也

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

TA关注的人

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