自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣102 198 70 55

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 2 + 9 + 1 = 12。偷窃到的最高金额 = 1 + 3 = 4。

2026-09-05 17:43:40 53

原创 力扣160 21 86

请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。请你将两个数相加,并以相同形式返回一个表示和的链表。力扣141 环形链表,判断给出的链表中是否有环。,这样相当于「逻辑上」两条链表接在了一起。的方式存储的,并且每个节点只能存储。两个分区中每个节点的初始相对位置。难点在于链表长度不一,无法对应比较。,请你对链表进行分隔,使得所有。给你两个单链表的头节点。给你一个链表的头节点。a的路程:a+c+b。

2026-09-04 11:48:50 211

原创 Aop切面

代理模式是一种结构型设计模式:不直接访问目标对象,而是通过一个“代理对象”来间接访问,代理在访问前后可以附加额外的逻辑。Spring AOP 的本质就是:在运行时,用 JDK 动态代理或 CGLIB 给目标 Bean 生成一个代理对象,容器里放的是代理对象,你调用方法时实际走的是代理,代理帮你插入切面逻辑。你写的: userService.save()实际执行: 代理.save() → 前置通知 → 目标save() → 后置通知 → 返回第 1 步:Spring Boot 启动,开始扫描所有类。

2026-09-02 18:39:33 790

原创 力扣42接雨水 11盛水最多的容器

上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。left_max与height[left]比较,如果height[left]大于max,则替换max,成为新的墙。当set1中不包含时,加入set1 求得ans,取max 并且right++扩展滑动窗口,因为无重复字符的最长子串是 "b",所以其长度为 1。存在时代表重复,remove掉left, left++变动left,即短的一边,长的一边留下。

2026-09-01 23:51:55 216

原创 力扣26 167 344 5

nums[slow1] slow++ bb 写回 abbcd fast++ bb。=c slow ++ slow = 2 写会abccd。编写一个函数,其作用是将输入的字符串反转过来。你所设计的解决方案必须只使用常量级的额外空间。、使用 O(1) 的额外空间解决这一问题。不要给另外的数组分配额外的空间,你必须。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。去重后,返回唯一元素的数量。的形式返回这两个整数的下标。之后的剩余元素可以忽略。中最长的 回文 子串。重复使用相同的元素。

2026-08-31 16:11:12 209

原创 常见限流算法与Sentinel限流机制

阿里的sentinel,sentinel基于滑动时间窗口算法统计调用数据,提供了如下限流实现快速失败(DefaultController),基于滑动时间窗口的统计数据,如果当前QPS已达到阈值则立即限流,严格保证流量小于限流阈值,属于 “滑动时间窗口限流算法”的特点。排队等待(RateLimiterController),根据限流阈值计算请求放行的时间间隔,如果过两个请求之间的间隔时间过短,则计算第二个请求需要等待的时间,并通过Thread.sleep让第二请求线程进行等待。

2026-08-31 09:13:46 706

原创 黑马点评Redission

Redisson 是一个基于 Redis 的 Java 驻内存数据网格(In-Memory Data Grid),它不仅提供了一系列的分布式 Java 常用对象,还提供了许多分布式服务。Redisson 提供了使用 Redis 的最简单和最便捷的方法,其宗旨是促进使用者对 Redis 的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。

2026-06-21 22:01:23 238

原创 限流组件重构:从ZSET滑动窗口到1秒十小分桶

维度ZSET 滑动窗口1秒十个小分桶统计精度高,真正的滑动窗口中等,精度为100ms内存占用高,每个请求存一个元素极低,固定10个计数器性能开销较高,涉及多个Redis命令很低,主要是原子自增操作实现复杂度简单,代码量少略复杂,需维护桶逻辑适用场景低频、对精度要求严格的场景高频、对内存敏感、允许轻微边界波动的场景。

2026-06-21 22:00:21 418

原创 组合模式构建树形验证引擎

/ 抽象节点// 返回是否通过/*** 校验器接口 - 所有校验规则的"根"* 不管是单个校验(如检查库存),还是组合校验(如多个条件同时满足),* 都实现这个接口。这样对调用方来说,它们的使用方式完全一样。* 这就是组合模式的核心:让"单个对象"和"组合对象"有一致的操作方式。

2026-06-18 00:06:09 323

原创 AOP幂等组件

"@annotation(repeatLimit)" 是切入点表达式, @annotation 是 AspectJ 的指示符,表示"匹配所有带指定注解的方法", repeatLimit 是形参名,Spring 会通过反射把方法上的注解实例注入到这个参数里。- 拿到切入点表达式 "@annotation(repeatLimit)" ,意思是"匹配所有带 @RepeatExecuteLimit 注解的方法"解决 接口被重复调用 的问题。durationTime 是注解里配置的"幂等窗口时长",比如 5 分钟。

2026-06-17 22:48:56 397

原创 即时通信系统V0.1(基础server搭建)

这是一个的基础实现,用于处理客户端连接。

2026-06-07 15:13:03 338

原创 C++通讯录课设(西安石油大学)

最近完成了西安石油大学C++程序设计的课程设计——通讯录管理系统。这个项目虽然基础,但非常考验对C++面向对象编程(封装、继承、多态)、文件读写以及基本数据结构的掌握。本文将分享我的完整代码、设计思路以及在踩过的坑,希望能帮到后续做这个课设的同学们!👍C++11。

2026-05-24 00:06:26 231

原创 消灭并发重复调用:基于 Agent 调用 LLM 的分布式 Single-Flight 实战

当多个相同的请求并发到达时,只让第一个请求真正去执行,其他请求“搭便车”等待第一个请求的结果,然后共享这个结果。就像多个人同时按电梯,只有第一个人的按电梯动作有效,其他人不需要再按,但大家都能坐上同一部电梯。/*** 生成 LLM 请求的唯一指纹* 必须包含所有影响 LLM 输出的核心参数*/// 使用 MD5 或 SHA256 缩短 Key 长度在 AI 接口越来越昂贵的今天,分布式 Single-Flight是一种投入产出比极高的架构模式。

2026-05-23 23:52:29 542

原创 效率翻倍!Claude Code 常用命令与快捷键全攻略

掌握这些命令,你就不再只是一个“聊天者”,而是一个真正的“指挥官”。从精准控制上下文大小,到无缝在 AI 对话与系统终端间穿梭,再到定制化的项目级记忆,这些命令共同构成了 Claude Code 高效运转的基石。赶紧打开你的终端,试试这些命令吧!如果你还有其他私藏的 Claude 使用技巧,欢迎在评论区分享交流!

2026-05-22 21:55:31 722

原创 Kafka笔记

Apache Kafka 是一个强大的分布式流处理平台,适用于大规模数据处理和实时分析。它的高吞吐量、低延迟、可扩展性和容错性使其成为现代数据架构中的重要组件。无论是用于消息队列、日志聚合还是流式处理,Kafka 都提供了高效、可靠的解决方案。

2026-01-01 18:09:51 1308

原创 Redis黑马点评 Feed流

用户发布动态时,系统主动将动态推送到其粉丝的收件箱中。

2025-11-04 22:06:22 1167

原创 Redis黑马点评 达人探店

【代码】Redis黑马点评 达人探店。

2025-10-30 21:19:10 197

原创 Redis黑马点评 分布式锁

通过将这些操作封装在 Lua 脚本中,可以一次性发送脚本并执行,从而减少网络延迟。在这些场景中,确保操作的原子性和高效性是非常重要的。Redis 的 Lua 脚本执行是原子性的,这意味着在脚本执行期间,其他客户端的请求不会中断脚本的执行。这确保了脚本中的操作序列是不可分割的,从而避免了并发问题。这使得你可以将复杂的业务逻辑封装在 Redis 中,减少客户端的负担。在某些情况下,使用 Lua 脚本可以减少锁的使用。通过将多个操作封装在 Lua 脚本中,可以避免在客户端使用锁来确保操作的原子性。

2025-10-27 11:00:29 632

原创 Redis 黑马点评day02 商户查询缓存

Redis 是一个高性能的键值存储系统,通常用作缓存、消息队列或数据库。在缓存场景中,Redis 将数据存储在内存中,以提供极高的读写速度。:虽然 Redis 主要用于内存存储,但它也提供了多种持久化机制,如 RDB 和 AOF。:字符串、哈希、列表、集合、有序集合、范围查询、位图、超日志等。:提供了丰富的客户端库,支持多种编程语言。:数据存储在内存中,读写速度极快。

2025-10-25 14:08:41 264

原创 Redis黑马点评 day01

在分布式集群环境中,会话(Session)共享是一个常见的挑战。默认情况下,Web 应用程序的会话是保存在单个服务器上的,当请求不经过该服务器时,会话信息无法被访问。

2025-10-23 21:33:59 759

原创 Redis黑马 day01

Jedis是一个高性能的 Java Redis 客户端,用于连接和操作 Redis 数据库。它提供了简单易用的 API,可以方便地在 Java 应用程序中集成 Redis。

2025-10-22 18:27:20 628

原创 MyBatis-Plus黑马

Maven仓库版本查询MyBatis-Plus 是一个增强版的 MyBatis ORM 框架,它不仅继承了 MyBatis 的所有特性,还添加了许多强大的插件和便捷的功能。MyBatis-Plus 的目标是简化开发,提高开发效率,同时保持代码的清晰和易维护性。

2025-10-21 20:05:40 423

原创 苍穹外卖Day 10 来单提醒代码(跳过微信支付)

不调用paysucess,因此直接写进payment.

2025-10-20 10:22:50 575

原创 苍穹外卖-Sprint Task

测试启动类务必加上注解@EnableScheduling结果如下:Cron表达式:Cron表达式是一种用于配置周期性任务(定时任务)的字符串表达式。它由一系列由空格分隔的字段组成,每个字段代表一个时间单位。Cron表达式通常用于配置定时任务,例如在Linux系统中使用cron守护进程,或者在Java中使用Quartz等调度框架。

2025-10-20 08:58:16 371

原创 C++ MFC控件实现小型通讯录(西安石油大学)

MFC 的定义是微软提供的一个 C++ 类库,它封装了 Windows API 的大部分功能,提供了一个应用程序框架,用于简化 Windows 应用程序的开发。MFC 提供了一系列的类和函数,用于处理窗口、消息、控件、对话框、菜单等常见的 GUI 元素。

2025-10-17 19:38:56 1332

原创 苍穹外卖-购物车 前端修改(小程序主页与购物车模块显示不一致)

经过分析后认为是前端缺少更新逻辑,遂使用伟大的cursor进行分析,最终找到问题所在。有时连续点击后,数据库中已经增加2个单位,但红圈内数字只增加1,待下次点击后才会更新正常。明白,我给你最小改动的“手动修改步骤”,你改这一处就能同步数量,不需要改其他地方。但是,仅仅计算这些信息是不够的,还需要将这些信息同步到界面上。,你可以确保在计算订单信息后,界面能够立即更新显示的订单数量。,界面可能不会更新,导致用户看到的订单数量是旧的。:计算订单信息,比如总价、数量等。:从后端获取购物车列表。

2025-10-16 18:14:01 823

原创 苍穹外卖-购物车部分

如果不存在,创建一个新的购物车项并插入到数据库中。:调用 Mapper 方法更新数据库中的数量。如果购物车项不存在,插入新的购物车项。:获取当前用户的 ID,并设置到。如果购物车项已存在,更新其数量。:将新的购物车项插入到数据库中。:查询购物车中是否存在该商品。:获取第一个匹配的购物车项。如果存在,增加商品的数量。:设置创建时间为当前时间。

2025-10-16 18:02:21 432

原创 苍穹外卖-缓存套餐 Spring Cache day07

查询的Key在缓存和数据库中都不存在,导致每次请求都直接访问数据库,若大量此类请求到来,会使数据库压力骤增。

2025-10-14 17:59:11 897

原创 苍穹外卖 状态设置 httpClient入门

可以自定义请求头、请求体和响应处理逻辑,满足复杂的业务需求。

2025-10-12 12:07:18 368

原创 Redis 黑马skyout

【代码】Redis 黑马skyout。

2025-10-12 00:08:00 335 1

原创 苍穹外卖-菜品新增、删除

这行代码把“HTTP 请求 → JSON → Java 对象 → 业务 → 统一响应”全链路打包好,开发者只需关心真正的业务逻辑,其余由 SpringMVC + Jackson + 统一异常处理自动完成。删除菜品表中的菜品数据这里,每次循环需要执行2次SQL,可能会出现性能问题。未捕获的运行时异常 → Spring 默认 500 → 也可被同一处理器统一包装成。批量删除用foreach循环来遍历,删除被套餐关联的SQL语句比较复杂。→ 同样进全局处理器 → 前端收到 0/"菜品已存在"。

2025-09-29 22:14:29 1071 2

原创 Element前端黑马案例

【代码】Tlias。

2025-09-27 18:55:48 289

原创 Tlias-登录检验(2)

在Java Web开发中,和是两种常用的组件,用于在请求处理过程中插入自定义逻辑。它们在功能上有一定的相似性,但使用场景和实现方式有所不同。下面我将详细介绍它们的区别和使用方法。定义: 是Servlet规范中定义的一个接口,用于在请求到达Servlet之前或响应返回客户端之前执行某些操作。它通常用于日志记录、权限检查、请求修改等。特点:基于Servlet规范:Filter是Servlet API的一部分,适用于所有基于Servlet的应用。生命周期:由容器管理,包括初始化()、过滤()和销毁()。配置方式:

2025-09-23 12:57:08 404

原创 Tlias-登录校验

【代码】Tlias-登录校验。

2025-09-22 10:58:40 393

原创 Tlias管理系统——(修改员工)

【代码】Tlias管理系统——(修改员工)

2025-09-17 23:20:59 324

原创 Tlias管理系统——(删除员工)

Controller 方法 → 调用 Service 方法 → Service 调 Mapper 方法 →。MyBatis 根据“方法全名”找同名 XML 的 SQL → 拼参数 → 发 JDBC → 封装结果返回。→ 生成动态代理 → 注入 Service。→ Controller 没扫到/路径写错。→ Service/Mapper 没注入。EmpMapper Empexpr同理。→ XML 里动态 SQL 拼错。→ Service 没加。→ XML 参数名对不上。

2025-09-16 19:49:46 319

原创 Tlias管理系统-事务管理

REQUIRES_NEW(互不干扰的新独立事务),自动回滚(rollback)REQUIRED 大部分情况。是 Spring 提供的。提交事务(commit)开启事务(begin)

2025-09-15 10:06:59 292

原创 Tlias管理系统-(增加员工)

好问题!,它只认三件事:请求方式(GET/POST/PUT/DELETE…)请求路径(/emps、/emp/1 …)请求参数 / 请求体里的数据。

2025-09-13 23:40:57 511

原创 Tlias员工查询优化

无法显示。

2025-09-12 22:51:11 466

原创 Tlias系统 员工管理-(准备工作)

【代码】Tlias系统 员工管理-(准备工作)

2025-09-11 12:53:46 372

空空如也

空空如也

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

TA关注的人

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