- 博客(19)
- 收藏
- 关注
原创 排序算法-快速排序
1:查找基准点,假设基准点左侧的元素均小于基准元素,基准右侧的元素均大于基准元素2:使用两个指针一个指针从左向右移动,另外一个指针从右向左侧移动,如果右侧指针元素大于基准元素,则右侧指针左移,如果左侧指针元素小于基准元素,左侧指针右移3:当左侧指针和右侧指针相同的时候说明移动完成,交换基准元素和该位置的值即可,此时完成基准元素左侧的值均小于基准,右侧的值均大于基准。
2024-01-15 12:20:04 346
原创 MySQL 事务问题场景记录
后面表示T 是事务1 , M 为事务2 ,数字标识操作的步骤;例如 T1 -> T2 -> M1 即为开启事务1 ,查询 id =1 的数据, 然后开启事务2.
2024-01-04 16:25:30 369
原创 链表反转-Java
例如上面的链接,如果需要再head插入1,则首先需要获取原先的head.next 缓存temp,然后让head 指向 1 即 head.next = new Node();然后让新增节点的next指向temp 即 new Node().next = temp;所以所谓的头插法反转就是新增了一个新的链表,然后遍历原先的链表,每次使用头插法插入到新的链表即可;第一种方法: 借助栈的先进后入原则。虚拟一个头结点,尾结点;
2023-12-26 16:07:18 334
原创 12月25日GM金融面试汇总
分布式架构:Sentinel 分布式事务MySQL:Mysql的存储引擎,以及区别? Mysql的索引分类,索引实现原理?MQMQ的集群架构? MQ 的消费端消费消息的过程? MQ是如何确定哪个消费者消费哪些queue ? 消费失败的信息在mq的位置发生变化吗? MQ消息消费失败的消息是如何进入私信队列的?基础线程池的创建过程和核心参数? 创建核心线程数是什么时候创建的?是创建线程池的时候就创建的?还是使用的时候才创建? 线程池中多余的线程如何销毁?(队列满了之后新增到
2023-12-25 18:39:42 26
原创 AOP 全局trim关键属性
再业务开发中经常以为一些关键属性的前后空格问题,导致后端业务逻辑不能正常处理,如果每个接口单独trim,代码繁琐太容易遗漏,因此需求想要全局对关键属性trim, 比如在我们的对外接口中, providerId , 和 parkingId 是对用户身份的关键验证,所以需要对这两个属性做全局trim 。1:申明切入点。@Documented@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public @interfa
2020-12-14 11:13:22 397
原创 GIT TAG 批量删除
前言: 在开发中我们经常使用tag保留历史版本,以防新开发功能快速回退到上一个版本。每次功能上线前均使用git flow 管理tag , 随着时间的推移,线上的tag数量可能达到七八十个。实际中其实并不会使用太早的tag,就算代码可以回溯,基本该版本的数据库等都需要配套,除非使用flyway等脚本维护,否则遗留并没有意义。删除的过程中,需要删除本地,再删除远程,对于大量的tag删除确实是一个很苦恼的事情。有没有批量删除某些tag呢。...
2020-10-10 10:06:07 6841
原创 钉钉群发送消息脚本
curl -H "Content-Type: application/json" -X POST --data '{"msgtype": "text","at": {"atMobiles": ["13311229533"],"isAtAll": true} ,"text": {"content": "告警小能手 谁有bug@谁"}}' https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx
2020-09-16 17:03:41 3478 1
原创 微信v3图片上传版本2,完整版代码
package com.dsx.wechat;import com.alibaba.fastjson.JSONObject;import com.dsx.HttpClientHelper;import com.dsx.v3.SignatureUtil;import lombok.extern.slf4j.Slf4j;import org.apache.commons.codec.digest.DigestUtils;import org.apache.http.client.methods..
2020-08-13 18:32:53 769 2
原创 微信V3 版本图片上传部分代码
public void updateImage(File file){ try { // 换行符 String LINE_END ="\r\n"; String PREFIX ="--"; // 定义数据分隔线 String BOUNDARY ="boundary"; String filename = file.getName();//文...
2020-08-13 18:23:38 377 3
原创 单机版RocketMQ搭建并测试
单机安装启动步骤如下:1:下载,并解压安装包,window截图如下:2:配置JAVA ,ROCKETMQ 环境变量,因为很简单,我直接贴进来两个链接,按照步骤操作即可JAVA环境变量配置(1.8) ROCKETMQ环境变量配置3:启动NameServerwindow : 切换到ROCKETMQ 的bin目录下执行命令: start start mqnamesrv.cmd弹出如下图所示证明nameServer启动成功也可以打开日志查看nameServer的启动日志,日志路径
2020-06-02 22:27:10 2538
原创 正则校验
"^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$"
2020-04-17 16:42:29 539
原创 微信支付支付窗口回退页问题解决方案
问题描述:我们的使用场景是微信的当面付,当用户扫码支付的流程概括如下:用户扫码(前端地址)-->前端请求后端获取跳转微信授权url-->前端发起重定向跳转微信-->微信授权下发auth_code--> 重定向到后端接口-->请求后端携带auth_code请求微信获取openId-->微信返回openid给后端,后端携带openid重定向给前端(h5)--&...
2019-11-21 10:47:45 1930
原创 @EnableAsync ,@Async 源码分析
在Springboot 项目中,使用 @EnableAsync可以开启异步请求 ,使用@Async 可以标注需要异步执行的方法,那到底是如何实现的的呢?首先:从入口@EnableAsync 源码查看@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AsyncCon...
2019-09-29 20:06:43 571 1
原创 在springboot中正确使用@Async完成异步执行
在很多业务开发中,经常为了保证性能,保证主业务流程正常, 副流程需要异步。例如目前我负责的支付主流程中,只要支付主业务正常,这笔交易就算是正常,例如:日志记录,邮件发送等不关键业务异步处理,只要保证最终处理成功就可。代码部分:首先看下面一段代码@RestController@RequestMapping("/async")@Slf4jpublic class AsyncT...
2019-09-26 20:09:10 1862 1
原创 记一次使用dubbo过程中版本冲突导致的坑
前言:2019年09月23日临下班,产品的一个变更需求临近尾声阶段。本地测试OK,兴致冲冲的想着发布到测试环境,验证一下没有问题,五分钟结束战斗,明天就开始下个需求了。随在CE(公司的devOps系统)上切换到hotfix/xxx分支,部署上线。部署没有问题,跑了一通单测,呃呃呃呃呃。莫名的一堆错误。怎么可能,再deploy ,再重启,还是这个错误,难道是公司的CE有问题(以前会莫名其妙的出问题)...
2019-09-25 20:06:06 641 2
原创 Git 常用命令
git 常用命令 查看分支 git branch -a 查看所有本地和远程分支 git branch 查看本地分支 git branch -r 查看远程分支 切换分支 git checkout <BranchName> 切换本地分支 删除分支 git branch -d <BranchName> 删除本地分支 git pus...
2019-09-25 20:02:17 129 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人