- 博客(72)
- 收藏
- 关注

原创 LeetCode 热题 HOT 100
通过系统学习和实战提升,逐步掌握算法精髓,开启你的算法成长之旅。让我们从今天开始,坚定信念,迈向算法高手之路!提示:每天坚持一题,逐步积累算法思维,突破瓶颈,迎接挑战!
2025-01-13 17:22:46
1673
22

原创 启动RocketMQ及错误解决
bin:启动脚本,包括 shell 脚本和 CMD 脚本conf:实例配置文件 ,包括 broker 配置文件、logback 配置文件等lib:依赖 jar 包,包括Netty、commons-lang、FastJSON等。
2025-01-10 11:45:52
1254
2

原创 Linux中部署微服务项目
以 yum 安装为例子进行安装,安装 yum-utils,使用 yum-config-manager 工具设置 yum 源,后面两个是 devicemapper 驱动依赖。(这个问题通常是由于网络连接问题导致的,特别是在国内网络环境下,访问国外的 Docker Hub 仓库可能会遇到速度慢或连接超时的情况。出现dist目录即代表成功。上传成功后,通过cd命令进入Java文件夹目录,解压 JDK17 压缩包,命令。目录,创建 java 文件夹。上传前记得压缩下 dist 目录,上传方便些,上传成功后再解压。
2024-12-21 12:20:29
1303
1
原创 线程池详解:在SpringBoot中的最佳实践
Component@Scheduled(fixedRate = 60000) // 每分钟记录一次logThreadPoolStatus("自定义线程池", executor);// 监控ThreadPoolTaskExecutorlogThreadPoolStatus("任务执行线程池", tpExecutor);// 活跃线程数// 当前线程数// 核心线程数// 最大线程数// 已完成任务数// 总任务数// 队列大小log.info(
2025-03-26 15:21:17
1258
30
原创 Spring Boot 事务详解
在现代应用程序中,事务管理是确保数据一致性和完整性的重要机制。Spring Boot 提供了强大的事务管理功能,使得开发者可以轻松地定义和管理事务。本文将详细介绍 Spring Boot 中的事务管理,包括事务传播行为、事务属性以及声明式和编程式事务管理。
2025-03-18 11:47:04
1411
49
原创 策略模式详解:实现灵活多样的支付方式
策略模式通过定义一系列算法,使得这些算法可以互换使用,并且客户端可以在运行时选择不同的算法。通过使用策略模式,我们可以在不修改客户端代码的情况下轻松添加新的算法,实现了代码的开放-关闭原则(Open/Closed Principle)。策略模式在实际开发中非常有用,特别是在需要动态选择算法或行为的场景下。希望通过本文的介绍,您对策略模式有了更深入的理解,并能在实际项目中灵活应用。
2025-03-07 23:06:41
904
51
原创 责任链模式:优雅处理复杂流程的设计艺术
责任链模式是这样工作的:一个请求沿着一条预定义的对象链传递,直到有一个对象处理它或者请求到达链尾。每个处理者决定是自己处理请求还是将其传递给链中的下一个对象。这种模式的美妙之处在于:请求的发送者不需要知道谁会处理这个请求,而每个处理者也只需要关注自己的职责,无需知道整个链的结构。责任链模式通过将请求沿着处理者链进行传递,实现了请求发送者与接收者之间的解耦。它不仅使代码更加整洁和模块化,还提高了系统的灵活性和可维护性。在处理复杂流程和事件传递时,责任链模式是一个非常有价值的设计工具。
2025-03-04 19:03:58
956
41
原创 算法实战练习
编写一个程序,解析给定的多个文件路径,并以树形结构打印出各个目录的层级关系。路径格式为Unix风格的路径,即各个目录由。给出一个数,这个数的每位如果是奇数就变为1,如果是偶数就变为0.,其他目录按层级递归打印,子目录前面需要加上。第一行给出 m 张桌子和 n 批客人。根目录的子目录不需要前缀。第二行给出 m 个数字,代表每张。你需要计算在不拼桌的情况下,求出。接下来的 n 行给出每批。
2025-03-01 12:13:48
521
18
原创 C++ STL:深入探索常见容器
C++ 标准模板库(STL)是构建高效程序的强大工具,它提供了多种容器,帮助开发者应对复杂的数据存储和操作需求。STL 容器支持广泛的操作,包括动态内存管理、灵活的元素存储、以及高效的访问与查找能力。本文将深入探讨 STL 中常见的容器,并分析它们的特性、优势和适用场景。
2025-01-27 12:33:25
1247
13
原创 写作利器:如何用 PicGo + GitHub 图床提高创作效率
在信息时代,写作效率是提升生产力的关键之一。Typora作为一款简洁高效的Markdown编辑器,与GitHub图床的结合,为创作者提供了一个便捷的解决方案。本篇文章将详细介绍如何使用Typora+GitHub图床组合来提升写作效率,尤其是在处理大量图片和文档排版时的便捷性。通过这对工具的协作,您可以轻松管理图像资源、自动生成链接,并且无需担心图床失效或空间不足等问题。此外,我们还将讨论如何优化工作流程,让写作过程更流畅、更高效。
2025-01-20 11:43:56
1882
14
原创 Linux虚拟机安装与FinalShell使用:探索Linux世界的便捷之旅
在探索Linux世界的旅程中,安装Linux虚拟机无疑是一扇重要的大门,它为我们提供了一个安全且灵活的环境来学习和实践Linux系统。而FinalShell作为一款功能强大的工具,其在连接和管理Linux虚拟机方面的便捷性与高效性,使其成为了众多用户在这一探索过程中的得力助手。
2025-01-19 11:36:13
1884
11
原创 从零开始:Gitee 仓库创建与 Git 配置指南
通过这篇文章,你将掌握如何使用 Gitee 进行项目托管,如何配置本地 Git 环境,并完成仓库的初始化,提交和同步等基础操作。无论你是 Git 的新手,还是希望更深入理解 Git 工作原理的开发者,本篇文章都将为你提供清晰的步骤和实用的技巧。在今天的开发工作中,代码管理和版本控制已经成为了不可或缺的一部分。尤其是在多人协作的项目中,如何高效地管理代码、同步修改,是确保项目顺利推进的关键。在我们提交代码到远程仓库之前,需要先更新远程仓库的代码到本地。在开始操作前,需要设置 Git 的全局用户名和邮箱。
2025-01-17 10:52:19
4566
6
原创 快速入门:如何注册并使用GPT
随着GPT技术的普及,越来越多的开发者和研究人员希望能在自己的项目中实现这一强大的工具。而要开始使用GPT模型,首先你需要注册一个GPT账号。但在这之前,我们将一步步帮助你完成一个小小的步骤:创建一个安全、隐私保护强大的ProtonMail邮箱账号。ProtonMail作为一款专注隐私保护的邮件服务,它不仅提供免费的高效服务,更能确保你在使用GPT时的账户安全。
2025-01-16 15:54:52
2117
9
原创 Swagger生成Api文档的增强解决方案--knife4j
在配置类中加入knife4j相关配置WebMvcConfiguration.java。4.访问:localhost:8080/doc.html。设置静态资源映射,否则接口文档页面无法访问。导入knife4j的maven坐标。在pom.xml中添加依赖。
2025-01-14 18:34:10
436
2
原创 Java的Stream流和Option类
Stream提供了更简洁、声明式的方式处理数据流。中间操作如filter()map()flatMap()等支持链式操作,实现强大的数据处理能力。终止操作则触发最终的处理过程,如collect()forEach()reduce()等。
2025-01-13 16:46:16
780
1
原创 MyBatis-Plus分页插件和自动填充
分页插件配置:通过和配置 MyBatis-Plus 的分页插件,用于自动处理分页查询。自动填充功能:通过实现接口,自定义类,在插入和更新时自动填充字段,如createTimeupdateTime和delFlag。这两部分功能可以大大简化 MyBatis-Plus 的使用,提升开发效率,同时保证数据库操作的一致性和规范性。
2025-01-12 20:33:45
222
原创 学习RocketMQ
Producer:消息的发送者;举例:发信者Consumer:消息接收者;举例:收信者Broker:暂存和传输消息;举例:邮局NameServer:管理Broker;举例:各个邮局的管理机构Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic消息Message Queue:相当于是Topic的分区;用于并行发送和接收消息名字服务器 NameServerNameServer。
2025-01-11 20:15:47
984
1
原创 Linux中配置Java环境变量
2.使用传输工具如 FinalShell、WinSCP等把jdk-8u431-linux-x64.tar.gz 传输到虚拟机中。这个命令会列出所有已注册的 Java 版本,让你选择一个作为默认版本。无论你选择哪个文件,保存并重新加载配置文件后,都可以通过以下命令验证。本文选用 jdk-8u431-linux-x64.tar.gz。命令将新安装的 Java 注册到系统中。点击上面的链接,滚动页面到最下面就可以看到下载界面,如下图。解压完成后,你还需要配置环境变量。命令,出现的是系统自带的Java信息(
2025-01-10 09:50:45
2447
1
原创 排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序
插入排序的时间复杂度为O(n^2),其中n是数组中的元素数量。在最坏情况下(即输入数组是逆序的),需要进行n(n-1)/2次比较和交换。排序前的数组: 9 5 2 7 8 1 3 5 4 8 7 6 2 1 5 排序后的数组: 1 1 2 2 3 4 5 5 5 6 7 7 8 8 9。// 将arr[i]与已排序好的序列arr[0...i-1]中的元素进行比较,找到合适的位置插入。选择排序的时间复杂度为O(n^2),空间复杂度为O(1),是一种不稳定的排序算法。printf("排序后的数组: \n");
2024-12-26 22:28:01
1035
2
原创 Linux系统中找不到IP地址
运行该命令后,系统会尝试从 DHCP 服务器获取 IP 地址。如果配置正确,它会分配一个 IP 地址。BOOTPROTO=dhcp # 或者 static,取决于你是否使用DHCP。启用接口后,再次查看接口状态,确认它是否已变为。如果你已经配置了静态 IP 地址,确保。)分配给该接口,而没有看到。
2024-12-20 13:00:00
829
1
原创 Java中的重要集合
部分值为null:当线程1走到了扩容那里发现当前size是9,而数组容量是10,所以不用扩容,这时候cpu让出执行权,线程2也进来了,发现size是9,而数组容量是10,所以不用扩容,这时候线程1继续执行,将数组下标索引为9的位置set值了,还没有来得及执行size++,这时候线程2也来执行了,又把数组下标索引为9的位置set了一遍,这时候两个先后进行size++,导致下标索引10的地方就为null了。执行替换地址操作之后,读取的是新数组的数据,同样也是有效数据,而且使用该方式能比读写都加锁要更加的效率。
2024-12-17 22:24:01
803
1
原创 hot100-->动态规划
请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。连续子数组[4,-1,2,1]的和最大,为6。是数组中的一个连续部分。
2024-12-16 18:34:58
254
1
原创 了解RocketMQ
在微服务架构中,RocketMQ通过提供异步消息传递机制,实现了服务间的解耦。这种异步通信方式不仅提高了系统的响应速度,还降低了服务间的直接依赖,增强了系统的可扩展性和容错性。RocketMQ在流量高峰期可以充当流量的缓冲池,通过缓存用户请求来平滑流量高峰。当某个节点的数据发生变化时,可以通过RocketMQ发送消息通知其他节点更新缓存,确保数据的一致性。RocketMQ支持严格的消息顺序保证,确保同一组消息按照发送的顺序被消费。RocketMQ支持定时和延时消息功能,允许消息在指定的时间点被消费。
2024-12-12 09:23:59
734
2
原创 ShardingSphere-JDBC
是一种数据库扩展技术,通过将数据拆分到多个数据库(分库)或多个表(分表)中来解决单一数据库或表带来的性能瓶颈。分库分表可以有效提升系统的可扩展性、性能和高并发处理能力,避免单一数据库或表的负载过重。
2024-12-10 17:56:34
670
1
原创 力扣hot100-->前缀和/前缀树/LRU缓存
中等给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。22public:// 获取输入数组的大小// 哈希表,用来存储前缀和的频次// 初始化哈希表,表示前缀和为0出现1次(这对从索引0开始的子数组非常重要)// 存储前缀和的数组(pre[i] 表示 nums[0] 到 nums[i-1] 的和)// 用于存储满足条件的子数组个数i < n;++i) {// 更新当前的前缀和。
2024-11-28 16:06:52
627
1
原创 力扣hot100-->排序
排序1.56. 合并区间中等以数组intervals表示若干个区间的集合,其中单个区间为intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:
2024-11-25 15:22:16
589
1
原创 力扣hot100-->栈/单调栈
/ 如果栈为空,或者栈顶元素与当前闭括号不匹配,则说明括号序列无效,返回false。// 如果当前字符是闭括号,检查栈是否为空或者栈顶元素是否与当前闭括号匹配。// 如果当前字符是开括号'[',则将对应的闭括号']'推入栈中。// 如果当前字符是开括号'{',则将对应的闭括号'}'推入栈中。// 遍历结束后,如果栈为空,则说明所有开括号都找到了匹配的闭括号,返回true。// 如果当前字符是开括号'(',则将对应的闭括号')'推入栈中。// 如果栈不为空,则说明有未匹配的开括号,返回false。
2024-11-21 17:05:59
814
1
原创 力扣hot100-->双指针/三指针
/ 计算当前两个指针之间的较小高度。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。// 计算当前两个指针之间的宽度。// 获取高度数组的长度。// 初始化右指针为数组的末尾。// 如果较小的高度是左指针的高度,那么移动左指针向右。// 返回计算出的最大面积。// 初始化左指针为数组的开始。// 否则移动右指针。// 因为增加宽度对面积的贡献比增加高度更大。// 当左指针小于右指针时,继续循环。
2024-11-19 15:50:40
292
1
原创 力扣hot100--数组
就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的。函数,这个函数可以直接生成下一个字典序排列,无需手动实现算法。就是将其所有成员以序列或线性顺序排列。修改,只允许使用额外常数空间。,以下这些都可以视作。
2024-11-12 16:03:09
348
1
原创 力扣hot100-->位运算
简单给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。14nums = [1]1public:// 获取数组的大小// 初始化结果为数组的第一个元素// 遍历数组中的所有元素i < n;++i) {// 通过异或运算逐个处理元素// 返回唯一的数字// 位运算// 异或运算的性质// 1.任何数和0做异或运算,结果仍是原来的数。
2024-11-01 14:53:42
597
1
原创 力扣hot100-->hash表/map
/ 创建一个哈希表(unordered_map),用于存储数组元素及其索引。// 查找是否存在一个元素,使得当前元素与之的和等于目标值。// 如果找到这样的元素,返回当前索引和找到的索引。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。// 如果没有找到符合条件的元素,返回空数组。相等的键值对,或者如果没有找到这样的键,则指向。// 遍历数组中的每个元素。整数,并返回它们的数组下标。你可以按任意顺序返回答案。
2024-10-31 15:54:17
494
1
原创 力扣hot100-->递归/回溯
/ 定义一个字符串向量 v,存储数字到字母的映射关系,数字 2 到 9 分别对应不同的字母组合。// 递归结束条件:当 path 的长度等于输入的数字串长度时,将当前组合添加到结果中。// 回溯:移除最后一个添加的字母,以便尝试下一个字母组合。// 定义一个字符串向量 result,用于存储所有可能的字母组合结果。// 递归函数 recursive,用于生成所有可能的字母组合。// 定义一个字符串 path,用于记录当前组合的路径。// 根据当前数字获取对应的字母字符串。// 返回所有生成的字母组合。
2024-10-26 16:02:59
407
1
原创 力扣hot100--DFS/BFS
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。// 回溯,将当前位置标记为未访问。函数中,它递归地搜索每个可能的方向,直到找到匹配的单词或者确定单词不存在。// 遍历网格的每个位置,以每个位置为起点进行DFS。// 定义一个Solution类,用于解决二维网格中查找单词的问题。// 定义四个方向的移动向量,分别对应上、右、下、左。// 如果新位置已被访问过,跳过。// 主函数,用于判断网格中是否存在给定的单词。// 检查新位置是否在网格内。
2024-10-23 17:55:11
1188
1
原创 力扣hot100--链表
给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
2024-10-07 15:44:01
1225
1
原创 关于docker错误
3.docker启动,elasticsearch也正常启动,但是本机浏览器访问不了。1.docker正常启动,MySQL也启动,但是本机电脑连不上虚拟机的MySQL。2.docker启动,但是本机电脑访问不了mq。重启docker,重启容器中的MySQL。
2024-08-31 09:54:21
634
1
Linux基础命令与Shell编程技术详解及实用案例
2025-01-01
新手学习python必看知识点
2024-12-31
郑州轻工业大学计算机网络期末复习资料概览与重点题型分析
2024-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人