自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 寒假打卡:2026-2-12

默认MysQL的事务是自动提交的,也就是说,当执行一条DML语句,MysQL会立即隐式的提交事务。,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作。START TRANSACTION 或 BEGIN;事务是一组操作的集合,它是一个。要么同时成功,要么同时失败。

2026-02-12 23:16:12 133

原创 寒假打卡:2026-2-9

子查询返回的结果是一列(可以是多行),这种子查询称为列子查询。子查询返回的结果是一行(可以是多列),这种子查询称为行子查询。SOME--与ANY等同,使用SOME的地方都可以使用ANY。常用的操作符:IN、NOT IN、ANY、SOME、ALL。子查询返回的结果是多行多列,这种子查询称为表子查询。ANY--子查询返回列表中,有任意一个满足即可。ALL--子查询返回列表的所有值都必须满足。常用的操作符:=、<>、IN、NOT IN。IN--在指定的集合范围之内,多选一。

2026-02-09 23:05:00 152

原创 寒假打卡:2026-2-8

求数组中⼀段最⻓的连续区间,要求这段区间内 0 的个数不超过 k 个。粗体数字从 0 翻转到 1,最长的子数组长度为 10。粗体数字从 0 翻转到 1,最长的子数组长度为 6。算法思想--->动态窗口。

2026-02-08 22:27:34 282

原创 寒假打卡:2026-2-7

所以其长度为 3。注意 "bca" 和 "cab" 也是正确答案。-->出窗口-->从哈希表中删除字符-->更新结果。利用规律,使用"滑动窗口"来解决问题。,请你找出其中不含有重复字符的。请注意,你的答案必须是。(3)判断:窗口是否出现重复字符。因为无重复字符的最长子串是。(2)进窗口:让字符进入哈希表。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 1。,所以其长度为 3。

2026-02-07 23:19:26 193

原创 寒假打卡:2026-2-6

SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名 ON 条件...;SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件...;SELECT 字段列表 FROM 表1 LEFT[OUTER] JOIN 表2 ON 条件...;SELECT 字段列表 FROM 表1[INNER] JOIN 表2 ON连接条件..;相当于查询表1(左表)的所有数据包含表1和表2交集部分的数据。相当于查询表2(右表)的所有数据包含表1和表2交集部分的数据。

2026-02-06 23:18:40 269

原创 寒假打卡:2026-2-4

滑动窗口:1.left=0,right=0。利用单调性,使用"同向双指针"来优化。如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。算法:长度最小的子数组。

2026-02-04 22:27:58 110

原创 寒假打卡:2026-2-3

1.一对多(多对一)

2026-02-03 23:02:12 195

原创 寒假打卡:2026-2-2

SET NULL:当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为nul(这就要求该外键允许取nuIl)NO ACTION:当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。RESTRICT:当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。CASCADE:当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录。请你找出并返回满足下述全部条件且。

2026-02-02 22:55:49 324

原创 寒假打卡:2026-2-1

给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。如:2+9已经>10了,2~9中间的数和9相加肯定也是>10,所以。解法:利用单调性,使用双指针算法来解决问题。输入: nums = [2,2,3,4]输入: nums = [4,2,3,4]个数ret就为(right-left)个。2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)优化:先对整个数组进行排序。

2026-02-01 21:38:09 141

原创 寒假打卡:2026-01-31

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名);[CONSTRAINT] [外键名称] FOREIGN KEY(外键字段名) REFERENCES主表 (主表列名)概念:在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好的策略。3.局部最优解:对于每一个子问题,贪心算法会做出在当前状态下看似最优的选择。2.分解子问题:将原问题分解成多个子问题。

2026-01-31 21:16:53 157

原创 寒假打卡:2026-01-30

外键约束:用来让两张表的数据之间建立连接,保证数据的一致性和完整性--FOREIGN KEY。主键约束:主键是一行数据的唯一标识,要求非空且唯一--PRIMARY KEY。默认约束:保存数据时,如果未指定该字段的值,则采用默认值--DEFAULT。唯一约束:保证该字段的所有数据都是唯一、不重复的--UNIQUE。概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。非空约束:限制该字段的数据不能为null--NOT NULL。检查约束:保证字段值满足某一个条件--CHECK。

2026-01-30 21:46:57 61

原创 寒假打卡:1-29

CASE [expr] WHEN [val] THEN [res1]...ELSE [default] END--如果expr的值等于val1,返回res1,...否则返回default默认值。CASE WHEN [val1] THEN [res1]...ELSE [default] END--如果vall为true,返回res1,...否则返回default默认值。IF(value,t, f)--如果value为true,则返回t,否则返回f。NOW()--返回当前日期和时间。

2026-01-29 22:37:09 157

原创 寒假打卡:2026-01-28

SUBSTRING(str,start,len)--返回从字符串str从start位置起的len个长度的字符串。LPAD(str,n,pad)--左填充,用字符串pad对str的左边进行填充,达到n个字符串长度。RPAD(str,n,pad)--右填充,用字符串pad对str的右边进行填充,达到n个字符串长度。CONCAT(S1,S2...Sn)--字符串拼接,将S1,S2,...Sn拼接成一个字符串。ROUND(X,Y)--求参数x的四舍五入的值,保留y位小数。MOD(X,Y)--返回x/y的模。

2026-01-28 21:47:08 30

原创 寒假打卡:2026-01-27

ALTER USER '用户名'@'主机名'IDENTIFIED WITH mysqL native password BY '新密码';CREATE USER '用户名'@'主机名'IDENTIFIEDBY '密码';DROP USER'用户名'@'主机名'.主机名可以使用%通配。

2026-01-27 22:23:46 39

原创 寒假打卡:2026-01-26

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2。SELECT 字段列表 FROM 表名 LIMIT起始索引,查询记录数;判断条件不同:where不能对聚合函数进行判断,而having可以。执行顺序:where>聚合函数>having。SELECT 字段列表 FROM 表名 [2. where与having区别。ASC:升序(默认值)

2026-01-26 22:15:22 41

原创 寒假打卡:2026-01-25

(2)当使用完一次双指针算法后,i也需跳过重复元素。(3)在该数后面的区间,利用双指针算法,快速找到两个数的和为-a即可。:(1)找到一种结果后,left和right指针要跳过重复元素。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。(1)先排序,从左往右遍历。,判断是否存在三元组。解法一:暴力O(n^3)(3)利用set去重。

2026-01-26 21:57:19 43

原创 寒假打卡:2026-01-24

利用单调性,使用双指针算法(left,right),直至sum(price[left]+price[right])为target。输入:price = [8, 21, 27, 34, 52, 66], target = 61。情况3:sum=target:return price[left],price[right]输入:price = [3, 9, 12, 15], target = 18。输出:[27,34] 或者 [34,27]输出:[3,15] 或者 [15,3]解法2(双指针算法)

2026-01-24 21:20:29 40

原创 寒假打卡:2026-01-23

1.对需求的小程序端进行功能测试,更加熟悉一些前端组件的知识,如防抖,选择器等前端组件。SELECT 字段1 [AS别名1],字段2[AS别名2]...FROM 表名;SELECT 字段列表 FROM 表名 WHERE 条件列表;BETWEEN ... AND:在某个范围之内(含最小、最大值)LIKE 占位符:模糊匹配(_匹配单个字符,%匹配任意个字符)SELECT DISTINCT 字段列表 FROM 表名;SELECT 字段1,字段2,字段3...FROM 表名;count:统计数量。

2026-01-23 22:00:18 38

原创 寒假打卡:2026-01-22

INSERTINTO表名(字段名1,字段名2,...)VALUES(值1,值2,...),(值1,值2,...),(值1,值2....);INSERT INTO表名 VALUES(值1,值2,...)(值1,值2,...)(值1,值2,...);INSERT INTO表名(字段名1,字段名2,...) VALUES (值1,值2,...);INSERT INTO表名 VALUES(值1,值2,...);SELECT DISTINCT 字段列表FROM 表名;1.给指定字段添加数据。2.给全部字段添加数据。

2026-01-22 22:03:54 27

原创 寒假打卡:2026-01-21

ALTER TABLE 表名 CHANGE 旧字段名 新字段名类型(长度) [COMMENT注释][约束];ALTER TABLE 表名 ADD 字段名类型(长度)[COMMENT 注释][约束];为emp表增加一个新的字段"昵称"为nickname,类型为varchar(20)ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);1.完成公司新需上线的产品所需的测试环境的搭建,完成两个账号的创建。ALTER TABLE 表名 RENAME TO 新表名;删除指定表,并重新创建该表。

2026-01-21 22:39:35 36

原创 寒假打卡:2026-01-20

2.完成公司基于销售统计的小程序端的功能测试,编写测试用例,基于自己的理解找产品沟通交流,完善需求文档当中存在的缺陷。(3)MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。单行注释:-- 注释内容 或 #注释内容(MySQL特有)name varchar(l0)comment'姓名',idcard char(l8)comment'身份证号'(2)SOL语句可以使用空格/缩进来增强语句的可读性。gender char(l)comment'性别',id int comment'编号',

2026-01-20 22:36:57 86

原创 Redis的典型应用

本文介绍了缓存和分布式锁的核心概念及应用。缓存通过存储热点数据提升读取性能,Redis作为常用缓存方案可缓解数据库压力,但需考虑缓存更新策略(如LRU/LFU)、缓存穿透/击穿/雪崩等问题及相应解决方案。分布式锁用于控制多节点对公共资源的访问,基础实现依赖Redis的setnx操作,并通过过期时间、校验ID、Lua脚本、看门狗续约机制和Redlock算法等提升可靠性。Redlock采用多节点加锁和多数表决机制,显著提高了分布式锁的容错能力。两种技术共同构建了高性能分布式系统的基础设施。

2025-11-30 15:13:52 974

原创 Redis中提供的集群方案

6)主节点将从⽣成 RDB 到接收完成期间执⾏的写命令,写⼊缓冲区中,等从节点保存完 RDB ⽂件后,主节点再将缓冲区内的数据补发给从节点,补发的数据仍然按照 rdb 的⼆进制格式追加写⼊到收到的 rdb ⽂件中.主从节点在建⽴复制连接后,主节点会把⾃⼰收到的 修改操作 , 通过 tcp ⻓连接的⽅式, 源源不断的传输给从节点. 从节点就会根据这些请求来同时修改⾃⾝的数据. 从⽽保持和主节点数据的⼀致性.哨兵节点与其他哨兵节点进⾏协商,达成多数认同主节点故障的共识。让其他从节点同步新主节点;

2025-11-30 13:11:40 1020

原创 Redis的持久化机制

Redis提供RDB和AOF两种持久化机制。RDB通过定时快照保存数据,适合备份但可能丢失数据;AOF记录所有写命令,数据更安全但文件较大。两者都使用fork创建子进程实现持久化,避免影响主进程性能。RDB恢复速度快但不够实时,AOF通过重放命令恢复数据更可靠但速度较慢。实际应用中可根据需求选择合适方案,或结合使用以兼顾性能和数据安全性。

2025-11-29 20:40:31 829

原创 Redis 常见数据类型

有了这些数据就可以得到喜欢同⼀个标签的⼈,以及⽤⼾的共同喜好的标签,这些数据对于增强⽤⼾体验和⽤⼾黏度都⾮常有帮助。Redis 将用户的 Session 信息进⾏集中管理,如下图 所⽰,在这种模式下,只要保证 Redis 是⾼可⽤和可扩展性的,⽆论用户被均衡到哪台 Web 服务器上,都集中从Redis 中查询、更新 Session 信息。有序集合中的每个元素都有⼀个唯⼀的浮点类型的分数(score)与之关联,这使得有序集合中的元素是可以维护有序性的,但这个有序不是⽤下标作为排序依据⽽是⽤这个分数。

2025-11-29 19:50:16 591

原创 抽奖系统性能测试

本文介绍了接口测试和压力测试的实施过程及结果分析。在接口测试环节,详细说明了登录、活动列表、详情页等接口的测试步骤,包括设置HTTP请求头、提取token等关键操作,并配置了同步定时器保证多线程测试的准确性。压力测试部分展示了系统在并发40TPS下的稳定表现,同时指出活动详情页响应时间波动较大的问题。测试结果表明系统当前性能良好,建议后续可增加并发用户数进行更高强度的性能测试。整个测试过程采用JMeter工具完成,并生成了详细的测试报告用于分析。

2025-11-26 19:28:13 165

原创 抽奖系统自动化测试

本文介绍了一个基于Selenium WebDriver的自动化测试框架实现。项目使用Maven管理依赖,包含WebDriverManager、Selenium Java和Commons IO等核心组件。框架设计了通用工具类(DriverUtils、BoardUtils、ScreenUtils)处理驱动配置、剪贴板操作和屏幕截图。测试用例覆盖了管理员注册、登录/退出、用户注册、人员/奖品列表查看、奖品创建、抽奖活动创建和中奖名单查看等核心功能。每个测试类都实现了独立的页面操作逻辑,并采用显式等待、iframe

2025-11-25 14:13:41 302

原创 基于SpringBoot的在线抽奖系统测试报告

本文介绍了一个基于SpringBoot3的在线抽奖系统,该系统实现了多角色管理、活动创建、奖品管理和抽奖执行等核心功能。前端使用JavaScript和AJAX技术,后端采用SpringBoot框架,数据库使用MySQL,并引入Redis缓存和RabbitMQ消息队列。系统测试涵盖了注册登录、用户管理、奖品管理、活动管理和抽奖流程等功能测试,以及界面、性能、兼容性等非功能性测试。测试结果显示系统基本功能运行正常,但在异常处理方面存在部分问题,如奖品描述可为空等边界情况处理不够完善。该系统为组织抽奖活动提供了一

2025-11-22 20:26:08 735

原创 [Redis篇章] 初识Redis

Redis是一个高性能的内存数据库,支持多种数据结构(字符串、哈希、列表等),具备读写速度快、功能丰富、持久化、主从复制等特性。它适用于缓存、排行榜、计数器、社交网络、消息队列等场景。Redis通过内存存储、单线程模型和C语言实现保证了高效运行,同时提供高可用和分布式支持,成为现代应用中广泛使用的数据存储解决方案。

2025-10-19 16:37:02 628

原创 SpringMVC的常用注解和用法

Spring会对所有的类进⾏扫描, 如果类加了注解@RestController, Spring才会去看这个类⾥⾯的⽅法有没有加 @RequestMapping 这个注解。从上面计算器的案例中可以看出,点击"点击相加"按钮,页面跳转到计算结果页面,这也就说明@RequestMapping支持POST请求。(当⽤⼾访问⼀个 URL 时, 将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射的).表⽰服务收到请求时, 路径为 /hello 的请求就会调⽤ hello这个⽅法的代码.,它是⽤来注册接⼝的。

2025-09-03 11:42:32 230

原创 多线程进阶

1. 开始时是乐观锁, 如果锁冲突频繁, 就转换为悲观锁.2. 开始是轻量级锁实现, 如果锁被持有的时间较⻓, 就转换成重量级锁.3. 实现轻量级锁的时候⼤概率⽤到的⾃旋锁策略4. 是⼀种不公平锁5. 是⼀种可重⼊锁6. 不是读写锁加锁的工作过程:无锁->偏向锁->自旋锁->重量级锁。

2025-05-10 17:24:04 1122

原创 理解线程池

• threadFactory: 创建线程的⼯⼚, 参与具体的创建线程⼯作. 通过不同线程⼯⼚创建出的线程相当于对⼀些属性进⾏了不同的初始化设置.• 使⽤ Executors.newFixedThreadPool(10) 能创建出固定包含 10 个线程的线程池.• maximumPoolSize: 正式员⼯ + 临时⼯的数⽬. (临时⼯: ⼀段时间不⼲活, 就被辞退).• corePoolSize: 正式员⼯的数量. (正式员⼯, ⼀旦录⽤, 永不辞退)创建线程/摧毁线程的开销,线程最大的好处就是。

2025-04-27 00:38:46 1338

原创 线程安全问题

按照之前对于锁的设定, 第⼆次加锁的时候, 就会阻塞等待. 直到第⼀次的锁被释放, 才能获取到第⼆个锁. 但是释放第⼀个锁也是由该线程来完成, 结果这个线程已经躺平了, 啥都不想⼲了, 也就⽆法进⾏解锁操作. 这时候就会。• ⽅法notify()也要在同步⽅法或同步块中调⽤,该⽅法是⽤来通知那些可能等待该对象的对象锁的其它线程,对其发出通知notify,并使它们重新获取该对象的对象锁。实际上,"主内存" 才是真正硬件⻆度的 "内存", ⽽所谓的 "⼯作内存", 则是指 CPU 的寄存器和⾼速缓存。

2025-04-25 17:39:29 1452

原创 Java线程的几种状态

大家走过路过不要错过,多多点赞支持吧!

2025-04-25 00:00:04 274

原创 Thread类的基本用法

具体代码如下:(1)Thread t1=new Thread();(2)Thread t2=new Thread(new MyRunnable());(3)Thread t3=new Thread("name");(4)Thread t4=new Thread(new Runnable(),"name");常⻅的有以下两种⽅式:(1) 通过共享的标记来进⾏沟通例:使⽤⾃定义的变量来作为标志位(注:需要给标志位上加 volatile 关键字)(2) 调⽤ interrupt() ⽅法来通知有时,我们需要

2025-04-24 20:29:16 397

原创 进程与线程的区别

举个例子,⼀家公司要去银⾏办理业务,既要进⾏财务转账,⼜要进⾏福利发放,还得进⾏缴社保。为了让业务更快的办理好,张三⼜找来两位同事李四、王五⼀起来帮助他,三个⼈分别负责⼀个事情,分别申请⼀个号码进⾏排队,⾃此就有了三个执⾏流共同完成任务,但本质上他们都是为了办理⼀家公司的业务。此时,我们就把这种情况称为多线程,将⼀个⼤任务分解成不同⼩任务,交给不同执⾏流就分别排队执⾏。等,当进程等待输入时,可能进入阻塞状态,让出CPU给其他进程。双击音乐播放器图标时,系统为其分配内存、加载代码,创建音乐播放器进程。

2025-04-21 23:22:50 336

原创 打开计算机语言大门

大家好,我是一名平凡而又普通的大一女大学生,由于高考的失利,来到了本该不属于我水平的双非二本,还是在文科类学校学习理工专业,buff直接拉满,开学前的我,茫然,不知所措,不知道该如何选择接下来的道路,但偶然间刷到了鹏哥的一条教学视频,视频中所讲的c语言知识逻辑清晰,与我之前所认识的计算机语言完全不同,很幸运的是,我在看完几个视频之后,找到了一点对计算机的兴趣,也慢慢明确了自己的目标—提升自己的实力,争取早日拿到offer!

2023-10-21 10:23:46 54 1

空空如也

空空如也

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

TA关注的人

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