- 博客(662)
- 收藏
- 关注
原创 Quartz任务调度
CronScheduleBuilder.cronSchedule()里面的表达式依次表示 [秒] [分] [小时] [日] [月] [周] [年]以上代码中使用的触发器是simpleTrigger,如果要求的触发条件比较复杂,可以使用cronTrigger,4.Job :任务接口,通过实现该接口,在execute()方法中实现定时的任务,也就是业务逻辑。1.scheduler:调度器,可以把任务和触发器注册到任务调度器中,然后启动调度器。以下这个触发器表示的是每天的12点15分、30分触发。
2025-06-05 22:48:02
298
原创 Windows的批处理文件
cd /d D:\nacos\bin 表示切换到 D盘,进入 nacos的 bin 文件夹,比如 nacos注册中心安装在 D盘, 将以下 的脚本写到一个 .bat 结尾的批处理文件中,或者是需要频繁地使用某些windows命令,可以写个简单的批处理文件,提高工作效率。类似的,可以写脚本文件,启动 本地的 zookeeper 、kafka 等。放到桌面,双击就可以直接运行 nacos 的启动命令了。有些项目,需要在本地安装注册中心,方便调试。@echo off 表示输出 off。
2025-06-03 22:20:26
153
原创 接口性能优化
Redis的execute(),详情见:https://blog.csdn.net/sinat_32502451/article/details/134366504。Redis的管理操作,详情见: https://blog.csdn.net/sinat_32502451/article/details/134366490。数据表的批量处理,详情见:https://blog.csdn.net/sinat_32502451/article/details/148350849。MQ做异步,还有重试机制。
2025-05-31 12:27:38
1091
原创 java使用Mysql批量更新(不存在就插入,存在就更新)
先逐个查询,需要插入的放到一个insertList中进行批量插入,需要更新的放到另一个updateList中进行批量更新。mysql 数据不存在则插入,存在则更新,可以用 INSERT ON DUPLICATE KEY UPDATE实现。详情见: https://www.cnblogs.com/expiator/p/14417061.html。详情见: https://www.cnblogs.com/expiator/p/17220668.html。这样查询时,只需要查出最新日期/版本号的数据就可以了。
2025-05-31 12:16:45
269
原创 Mybatis批量插入,批量更新
useGeneratedKeys="true"表示自动产生主键id,而keyProperty="id"表示主键对应的对象属性为id。而且主键对应的这个Person对象的属性"id" (也可以是别的命名,比如personId之类的), 最好设置成String类型的,不然可能会出错。这里不使用 @Param注解,那么在xml文件中的collection就默认为 “list”。在批量插入前,需要先做判空处理。Mapper如下:Service如下:批量插入或者批量更新如果需要先判断,不存在就
2025-05-31 12:14:36
333
原创 线程池的线程数设置
最好使用自定义线程池ThreadPoolExecutor,控制好最大线程数、阻塞队列长度,避免OOM。详情见: https://www.cnblogs.com/expiator/p/17140760.html。
2025-05-31 11:44:07
658
原创 耗时统计--StopWatch
但是如果有三四个功能,那反复地用 System.currentTimeMillis(),就会比较麻烦。prettyPrint():非常有用的方法。不仅可以统计出总的耗时,还可以显示出各个任务的耗时。在 apache、guava、spring的包里面,都有 StopWatch。start(String taskName) :指定任务名称,开始统计。StopWatch(String id) :构造方法,初始化。getTotalTimeMillis():统计出总耗时。在做性能优化的时候,耗时统计非常有用。
2025-05-31 11:35:45
260
原创 xxl-job快速创建复制任务
xxl-job的任务调度中心,点击【任务管理】, 输入 任务名称 后, 点击 【操作】 – 【复制】,可以快速复制任务。任务运行是否成功,以及错误日志,在【调度日志】中查看。
2025-05-28 23:13:38
257
原创 Notepad++替换前后字符,保留中间的文本内容
比如,要替换两个 ** 为 ###, 保留**之间的文本内容。以下的字符都是特殊字符,要匹配的话,需要加上斜框\作为转义。这里的 \1 表示中间的文本内容。
2025-04-13 16:23:55
217
原创 LeetCode34:在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [], target = 0。输出:[-1,-1]输出:[-1,-1]
2025-04-12 12:52:35
185
原创 LeetCode 143. 重排链表
不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。寻找链表中间节点并切割 + 反转链表第二个链表 + 合并链表。切割后第一个链表是 1,2,3 , 第二个链表是 4,5。每次各取一个节点,合并链表为 1,5,2,4,3。如: 1,2,3,4,5 的 中间节点 是3 ,输入:head = [1,2,3,4,5]输入:head = [1,2,3,4]输出:[1,5,2,4,3]反转第二个链表为 5,4 ,输出:[1,4,2,3]
2025-04-04 22:03:29
20
原创 LeetCode 415. 字符串相加
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。输入:num1 = “11”, num2 = “123”输入:num1 = “456”, num2 = “77”输入:num1 = “0”, num2 = “0”
2025-04-04 16:54:37
68
原创 LeetCode 54.螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。这样就能返回矩阵中所有元素。最后从下到上,遍历。
2025-03-01 11:50:05
196
原创 电商及支付的业务知识
代售是指一种商业模式,在这种模式下,销售方(通常称为代理商或经销商)并不直接购买商品的所有权,而是代表制造商或供应商销售产品,并在销售完成后将款项转交给制造商或供应商。比如天猫,提供了撮合买卖双方交易的平台,天猫代收订单款项,订单完成后,再付款给商家,通过交易拿取一定比例的佣金。订单系统,管理订单类型、订单状态,收集关于商品、优惠、 用户、收货信息、支付信息等一系列的订单实时数据,进行 库存更新、订单下发等能力。支付方式,用于支付订单的几种几种在线支付方式,如微信支付,支付宝,快捷支付等。
2025-02-28 17:18:43
160
原创 LeetCode 92.反转链表II
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表。输入:head = [1,2,3,4,5], left = 2, right = 4。输入:head = [5], left = 1, right = 1。输出:[1,4,3,2,5]
2025-02-20 18:06:39
119
原创 LeetCode 300.最长递增子序列
子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的。解释:最长递增子序列是 [2,3,7,101],因此长度为 4。给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。输入:nums = [10,9,2,5,3,7,101,18]输入:nums = [0,1,0,3,2,3]
2025-02-19 23:58:21
218
原创 kafka入门(八):kafka分区分配策略
不仅可以任意选用Kafka提供的3种分配策略,还可以自定义分配策略来实现更多可选的功能。自定义的分配策略必须要实现 org.apache.kafka.clients.consumer.internals.PartitionAssignor接口。
2025-02-18 11:53:27
803
原创 LeetCode 102.二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]输入:root = [1]
2025-02-11 23:02:16
103
原创 LeetCode42.接雨水
解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水。当前柱子左右两边最高柱子中较矮的,减去当前柱子的高度,就是能接的雨水。给定个非负整数表示每个宽度为1的柱子的高度图,计算。输入:height=[4,2,0,3,2,5]按此排列的柱子,下雨之后能接多少雨水。输入:height=
2025-02-09 11:01:49
119
原创 LeetCode 15.三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]注意,输出的顺序和三元组的顺序并不重要。解释:唯一可能的三元组和不为 0。输入:nums = [0,1,1]
2025-02-02 18:01:03
111
原创 leetCode 146. LRU缓存机制
/ 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}lRUCache.put(4, 4);// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}lRUCache.put(2, 2);// 缓存是 {1=1, 2=2}// 返回 -1 (未找到)lRUCache.get(1);// 返回 -1 (未找到)lRUCache.put(1, 1);// 缓存是 {1=1}lRUCache.get(1);
2025-01-24 12:13:49
178
原创 LeetCode 53.最大子数组和
给你一个整数数组m5,请你找出一个具有最大和的连续子数组(子数组最少包含一个。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。输入:nums = [5,4,-1,7,8]子数组是数组中的一个连续部分。输入:nums = [1]元素),返回其最大和。
2025-01-22 12:17:44
105
原创 intellij idea 项目突然报红,无法识别类和对象
比如,原来的项目是 /myProject/work ,可以建一个 /myProject/work-A,在这里面引入项目。一般是 maven 依赖没有解决,或者是idea缓存的问题,重新清缓存有可能影响到其他的项目。intellij idea 项目突然报红,无法识别类和对象,在父级文件夹,下面重新建一个文件夹,再重新clone 项目。
2025-01-22 11:36:14
156
原创 LeetCode25.K个一组翻转链表
k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。给你链表的头节点head,每k个节点一组进行翻转,请你返回修改后的链表。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。输入:head=[1,2,3,4,5],k=2。输出:[2,1,4,3,5]
2025-01-17 14:38:39
129
原创 LeetCode 64. 最小路径和
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。
2025-01-04 12:01:25
265
原创 支付宝支付报错 ACQ.ACCESS_FORBIDDEN
第三方应用调用接口,需要第三方应用先添加接口对应的功能包,再检查 app_auth_token 对应商家账号是否有签约。或者接口调用过程中,突然无法使用,建议检查是否签约已失效,如何签约以及续签可查看 如何签约流程。详情见: https://opendocs.alipay.com/support/01raue。详情见: https://opendocs.alipay.com/support/01raue。商户调用接口,未签约接口权限或者添加功能,建议详见商户如何确认完成签约。
2024-12-30 22:05:23
1226
原创 feign 针对某一个特定接口设置超时时间
服务消费者需要传多一个 options参数,就是 new Request.Options(connectTimeout, readTimeout)详情见: https://blog.csdn.net/sinat_32502451/article/details/136884349。如果是当前feign所有接口的超时配置,需要在 @FeignClient 的 configuration 属性中设置。服务消费者需要传多一个 options参数,就可以设置特定接口的超时时间。跟其他的生产者接口一样格式。
2024-12-26 17:33:51
222
原创 leetCode322.零钱兑换
计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。输入:coins=[1,2,5],amount=11。你可以认为每种硬币的数量是无限的。解释:11=5+5+1。
2024-12-25 00:01:05
246
原创 leetCode43.字符串相乘
给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的BigInteger库或直接将输入转换为整数。输入:num1=“123”,num2=“456”输入:num1=“2”,num2=“3”输出:“56088”
2024-12-24 00:01:36
207
原创 支付宝开放平台及支付宝开发文档
关键字: 接口加签方式 ,或者是: 设置密钥加签方式、支付宝公钥、私钥。可以查找 接口加签方式、设置密钥加签方式。如果找不到文档,可以通过关键字搜索。
2024-12-20 16:41:25
651
原创 sql优化--mysql隐式转换
如果是比较简单的数字,比如 字符串型的字段应该传 ‘1’ ,结果传了 1, 导致隐式转换,不走索引,那直接将 1 修改为 ‘1’ 就可以了。比如数据表中 user_status 的字段类型是字符串, 如果参数传入了一个整型数字,这样会有 隐式转换。在SQL中,隐式转换是数据库自动进行的类型转换,隐式转换可以帮助我们处理不同类型的数据。比如,数据表的字段是字符串类型的,传入一个整型的数据,也能够运行sql。CAST( ‘2’ AS SIGNED ) ,表示将’2’转换为数字。
2024-12-16 23:05:45
412
原创 LeetCode200.岛屿数量
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。
2024-12-14 14:41:49
298
原创 java项目启动报错
如果项目里有多个服务,A服务依赖了B服务,A服务启动报错:找不到符号,那有可能是A服务依赖的类在B服务中, 而B服务却没有install/deploy ,部署安装一下 B服务,再重新引入 A服务的maven依赖。Target文件里面,放着java编译后的文件 ,就是class结尾的文件,还有其他的配置文件,比如properties文件 、xml文件 等。项目启动,读取不到 resource下面的配置文件 ,或者是读取到错的配置文件 ,可以多看看Target里面的配置。缺少的配置或文件,就复制的同事的。
2024-12-10 23:43:27
591
原创 LeetCode118.杨辉三角
给定一个非负整数numRows,生成「杨辉三角」的前numRows行。输出:[[1],[1,1],[1,2,1],[1,3,3,1],在「杨辉三角」中,每个数是它左上方和右上方的数的和。当前的值,等于左上角加上正上方。输入:numRows=5。输入:numRows=1。
2024-12-08 13:24:41
273
原创 leetCode121.买卖股票的最佳时机
给定一个数组pr1ces,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。注意利润不能是7-1=6,因为卖出价格需要大于买入价格:同时,你不能在买入前卖H股票。返回你可以从这笔交易中获取的最大利润。解释:在第2天(股票价格=1)的时候买入,在第5天。(股票价格=6)的时候卖出,最大利润=6-1=5。输入:[7,1,5,3,6,4]在最小价格时买入,最大利润时卖出。来计算你所能获取的最大利润。
2024-12-07 13:07:57
306
原创 LeetCode169.多数元素
给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数大。你可以假设数组是非空的,并且给定的数组总是存在多数元素。排序后,在 n/2 位置的元素,必定是 多数元素。输入:nums=[2,2,1,1,1,2,2]输入:nums=[3,2,3]于 [ n/2] 的元素。
2024-12-05 23:41:15
174
原创 LeetCode136.只出现一次的数字
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。输入:nums = [4,1,2,1,2]最后 0 跟只出现一次的数异或结果为 a.所有出现两次的数据异或后结果为 0,输入:nums = [2,2,1]
2024-12-04 23:22:35
245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人