自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker部署xxl-job=admin调度中心

我想执行器应该是本机我就写的127.0.0.1,结果后来才知道,这个执行器ip写好了传到docker上的调度中心,那么它看到的也是本地回环地址,所以才一直没有执行,这里应该改成本地java服务的真实ip才可以。1.前提是要和mysql处于同一网络,且已经在mysql中创建xxl_job数据库架构。3.进入调度中心一定要看执行器,新手特别容易忘记这个,导致以为没有注册进来执行器,这里执行器对应于上面yml里定义的appname。

2025-05-28 12:01:28 332

原创 数据库优化

慢 SQL 排查闭环开启慢日志 → 分析日志定位问题 SQL → 用EXPLAIN剖析执行计划 → 针对性优化索引或查询语句。索引设计三原则最左前缀匹配:复合索引按查询条件顺序创建;覆盖索引优先:减少回表,提升查询速度;避免过度索引:索引过多会影响写入性能(插入 / 更新 / 删除)。工具链推荐(全面统计)、(快速预览);可视化:MySQL Workbench(图形化执行计划)、Navicat(索引管理)。

2025-05-13 14:47:28 965

原创 mybatis-plus踩坑记录

如果设置了id类型,那么所有插入的语句即使你对象中主键是有值的也不会插入。4.使用mybatisX插件构造整体框架。还有要把原来mybatis的依赖给去掉。解决方案是在实体类的主键成员变量上加上。3.尽量使用lamdba条件构造器。如果是3一定要用下面那个,

2025-05-13 14:30:28 240

原创 Docker安装,亲测有效

镜像地址可能会变更,如果失效可以百度找最新的docker镜像。若输出显示多个阿里云镜像源地址,则说明配置成功。如果是CentOS7会遇到这个问题。最后,执行命令,安装Docker。首先要安装一个yum工具。更新yum,建立缓存。

2025-04-28 18:08:13 461

原创 Rabbitmq常见面试题(mq八股文)

yaml 注意:阻塞式重试可能影响性能,高并发场景建议结合异步线程发送消息。2. 生产者确认机制(Publisher Confirm + Return) 作用:确保消息到达 MQ 且正确路由。 Confirm Callback:确认消息是否到达 Exchange(/)。 Return Callback:处理路由失败(Exchange 存在但无匹配队列)。 配置(Spring Boot): yaml java 3. 消息持久化 作用:确

2025-04-24 15:45:20 1005

原创 Mysql的深度分页查询优化

**覆盖索引+延迟关联** | O(N + M) | 通用场景,深度分页 | 需合理设计索引 |-- 扫描 1000010 行。- **海量数据 + 复杂查询**:迁移到 **Elasticsearch** 或 **ClickHouse**。- **连续翻页场景**:使用 **游标分页**(如 `WHERE id <?LIMIT M`)。- **随机跳页需求**:结合业务妥协(如限制最大页码),或用 **缓存/预计算** 缓解压力。

2025-04-24 15:42:58 572

原创 Java集合底层

首先map的容量一定是2的次幂,那么二进制情况下一定是只有一个首位为1的值其他都是0,例如16(D)=10000(B),那么15(D)=1111(B),假设hash值为5817(D)=0001 0110 1011 1001(B),此时和n-1进行&操作,最后结果一定是小于n的,不用%运算,这样做是为了计算效率更高,都是基于二进制的。ArrayList是实现了List接口的动态数组,底层是Object数组,不是线程安全的,可存储null值,具体是增删查以及扩容。将类中的空数组直接赋值给实际数组。

2025-03-28 14:47:50 570

原创 分片文件异步合并上传

1.如果是第一个分片文件:通过md5码和当前用户id查询数据库有没有一样的,有直接复制一份。对于大文件,为了避免上传导致网络带宽不够用,还有避免内存溢出,我们采用分片异步上传。3.是最后一个分片文件,注册事务同步管理器,实现在事务成功提交后调起线程的异步调用。2.如果不是最后一个分片文件,将分片文件转存到暂时目录,直接返回结果。5.合并分片文件,用RandomAccessFile实现。controller层,在前端对文件进行分片,先计算。6.trycatch包围,异常处理,直接删掉临时目录。

2025-03-24 10:43:15 327

原创 spring的参数校验

注意事项:可以直接定义在DTO上,这样可以直接对传输进来的参数不需要重复写。@Valid 或 @Validated:用于触发参数验证。要想生效必须在每个要进行校验的方法变量前添加@valid。@NotBlank:确保字符串不为空且不全是空白字符。@Pattern:使用正则表达式验证字符串格式。@Min / @Max:验证数字的最小/最大值。@NotEmpty:确保字符串、集合等不为空。@NotNull:确保参数不为null。@Size:限制字符串或集合的大小。:处理单个参数校验异常(如。

2025-03-24 09:27:42 278

原创 Rabbitmq常见面试题(mq八股文)初版

生产者消息发送到mq,mq会向生产者发送回执:ack、nack(不建议,一般也只处理nack情况):可以定义在yaml中,重试次数,下次重试时间(不建议,同步阻塞重试)综上所述:生产者端如果出现问题,那基本是编码问题,所以不用考虑解决。消费者要消费消息时才会从磁盘中读取并加载到内存(也就是懒加载)消息到达MQ,保存到队列后,尚未消费就突然宕机。消息到达MQ后,处理消息的进程发生异常。生产者发送消息到达MQ后未找到。生产者发送消息时连接MQ失败。生产者发送消息到达MQ的。:(避免消息的重复消费)

2025-03-17 19:23:16 932

原创 sentinel实现对不用用户的限流

先说一下我踩的坑:一定要先使用了这些方法,sentinel控制台才会出现对应的接口。1.引入依赖2.配置3.代码配置限流规则注意区分用的就是这里的limitapp()4.配置拦截器对于不同的用户,给sentinel的上下文设置不同的内容标识5.对想要限流的方法注解伺候介绍一下sentinelresource,如果定义了blockhandler,那就是如果发生了限流后,你还会做什么,一般就返回一下错误信息了,可以直接在写在本类中,方法签名必须要一样,而且还要在后面加一个参数。

2025-03-15 19:40:26 752

原创 Java验证码生成

2.通过session返回验证码。

2025-03-15 10:02:31 147

原创 java调用qq邮箱发送验证码

2.开通qq邮箱的smtp服务,拿到password。1.引入mail的依赖。

2025-03-15 09:58:37 393

原创 swagger生成接口文档,slf4j打印日志

(端口号根据实际情况修改),即可看到生成的接口文档页面。启动 Spring Boot 项目,在浏览器中访问。

2025-03-06 21:48:19 174

原创 docker部署nginx项目和springboot项目

docker部署springboot项目,mvn打包成jar包,然后写一个Dockerfilesddsadsdad。前端用的vue,先npm run build 打包成dist文件夹,编写好nginx.conf。将dist文件夹上传至html目录下,nginx.conf上传至nginx-conf目录下。后续创建容器,并挂载数据卷记得与上面同步,记得加入同一网络。将jar包和Dockerfile同时上传至同一个目录下。先在虚拟机上建立目录,方便后续挂载数据卷。原本运行在本机上的配置文件需要改动一点。

2025-02-07 19:09:40 233

原创 java 身份证识别OCR免费

用的百度api,每个月1000次免费,我没用百度自己的util,都用了比较熟悉的依赖。收获:post方法里的url参数和body里的键值对不是同一个东西,但是get的是。第一次根据文档自己写出来的工具类,蛮有成就感的。idcard的Bean实体。

2025-01-19 17:49:53 237

原创 java基础之深克隆与浅克隆的实现以及概念

实现cloneable接口,重写clone方法,对每个基本数据类型和基本类型数组直接clone,对于引用类型和对象数组则需要new一个新的,然后copy。要求对象及其引用类型字段都实现Serializable接口。对于浅克隆来说,如果对象的属性是值类型,对其进行复制;如果对象的属性是引用类型,复制其引用但不复制引用的对象。集合类clone,可以调用Collections.copy()方法,数组的clone方法已经实现深克隆。对于深克隆来说,无论对象的属性是值类型还是引用类型,都复制属性值给新的对象。

2025-01-06 10:40:10 177

原创 javaweb

数据库存储密码应该为密文,明文不安全,通过md5加密。

2024-06-29 10:39:38 147

原创 单链表反转

全部反转tail=null即可。

2024-05-20 09:23:43 130

原创 蓝桥杯2024省赛本科B组

【代码】蓝桥杯2024省赛本科B组。

2024-04-13 21:40:07 189 1

原创 问题规模和可用算法

2024-04-06 11:18:57 205 1

原创 打表法!!!!(超详细教程)c语言

以一题为例,题目要求打印出a~b之间的回文质数(a

2024-04-06 11:14:58 1307 1

原创 卡特兰数Catalan(一定要记的特殊数列)

序列种数、凸多边形三角划分、给定节点组成二叉搜索树、n对括号正确匹配数目等等,所以看到这些文字,请先通过自己手算算出f(0)到f(4),直接卡特兰数秒了。满足两个递推式(其实有四个,这里就写两个比较简单的)

2024-04-06 10:47:23 265 1

原创 c++高精度加法加高精度乘法加高精度阶乘

高精度乘法MUL(string a,string b)返回字符串。高精求加ADD(string a,string b)返回字符串。

2024-02-28 18:51:53 488

原创 求最大公约数gcd()和求最小公倍数lcm()

a,b(a

2023-12-26 10:43:41 410 1

原创 图的存储结构及应用

void Dijkstra(int v, Matrix* my,int distance1[],int path[])//赋值path[]与distance1[],v为出发点。for (i = 0;i++)//初始化path[],distance1[]printf("点%c到其他点的最小路径 最小路径权值为\n",c);printf("请输入哪一个节点到其他节点的最短路径:");printf("path[]数组:");

2023-12-09 13:28:47 70

原创 数据结构实验十二 图的遍历及应用

邻接矩阵,编程实现该图的深度与广度优先遍历算法,输出遍历序列。求从有向图的某一结点出发到其余各结点的最短路径。、熟悉图的深度度优先遍历和广度优先遍历算法。到其余各结点的最短路径和最短路径值。数据结构实验十二 图的遍历及应用。理解图的存储结构与基本操作;、掌握图的单源最短路径算法。)有向图采用邻接矩阵表示。)单源节点最短路径问题采用。)输出有向图中从源结点。单源节点最短路径问题。

2023-12-03 10:04:27 258 1

原创 实验十 树遍历应用

树的建立可以通过递归,以某种序列输入各节点的值(这里我通过先序遍历),先输入当前节点的值,再构建首孩子节点的树,再构建兄弟节点的树。树转化成二叉树,就是将首孩子当作左孩子,兄弟节点当作右孩子。编写一个层序遍历算法,利用队列结构按层次(同一层自左至右)输出树中所有的结点。将树结构转化为二叉树,编写二叉树非递归中序遍历算法,并输出遍历序列。树的形态如下图所示,打印出先序遍历、后序遍历的遍历序列。、掌握树与二叉树的转化及其遍历的基本方法。一般树转化成二叉树后的中序遍历:"、掌握递归二叉树遍历算法的应用。

2023-11-21 16:04:00 97

原创 实验九 哈夫曼编码

我理解到哈夫曼树是一种最优二叉树,假设叶子结点个数为m,那么树的结点就会有2*m-个,哈夫曼树用于最优解编码。可以通过数组来存储,因为已知结点个数,由于哈夫曼树的构造是由下往上的,所以结点的结构需要额外parent来指向父母结点。哈夫曼编码就是将频率多的数的编码短一点,频率少的编码长一点,从而来减少总码长。不知道为什么每一个编码的首字符刚好相反,我也没有找出哪里有问题。、掌握哈夫曼树的构造及数据结构设计。构成,它们在电文中出现的概率分别为。、理解哈夫曼树的基本概念。、假设用于通信的电文仅由。

2023-11-11 21:35:56 252 1

原创 二叉树的遍历

【代码】二叉树的遍历。

2023-11-10 10:47:16 70 1

原创 KMP算法c语言实现

相较于暴力,其实KMP的时间效率也差不了多少,除非有非常多的重复子串部分,效率才有显著提升。KMP算法将暴力算法从O(n*m)->O(n+m),n为主串的长度,m为子串的长度。

2023-10-15 18:31:02 95 1

原创 c语言队列实验杨辉三角

【代码】c语言队列实验杨辉三角。

2023-10-14 15:28:05 200 1

原创 直接插入排序(c语言)

【代码】直接插入排序(c语言)

2023-08-22 18:34:50 75 1

原创 判断是否为素数(c)

【代码】判断是否为素数(c)

2023-07-12 16:37:55 80 1

原创 快速幂(c语言)

7^105(d)=7^1*7^8*7^32*7^64=7^(1+8+32+64) 其幂为105(d)=1101001(b)=2^0*1+2^3*1+2^5*1+2^6*1=1+8+32+64=105。作用是幂函数x^n,不同于pow()函数,快速幂将时间压缩至一半,并且可以自定义数据类型。

2023-07-12 15:58:15 231 1

原创 c语言期末复习总结

c语言的特点:1.是一种结构化语言2语句简洁,使用方便灵活3.易于移植4.有强大处理能力5生成的代码质量高,运行效率高。标识符:由字母、数字、下划线组成,开头只能由下划线或者字母开头,不能与关键字重复,大小写字母不一样。

2023-07-03 16:57:26 96 1

原创 选择排序法(算法)

外部循环n-2次,下标从左到右。内部循环遍历剩下数找出最小值下标,最后与a[外部循环变量]交换。逐次从剩下数中找到最小值并放置最左边。外部循环变量k,内部循环变量i,中间变量t,记录最小值下标index,从小到大排序,c语言代码实现。a[index]=t;//最小元素与下标为k的值交换。//index为最小值下标。

2023-06-09 22:17:34 112 1

原创 冒泡排序法(算法)

冒泡排序法就是经过n-1次外部循环,逐次将最大的数移至最右边(最大数和最右边不包括上次循环的最大数和最右边),内部循环n-i次。假设有n个数,要是这n个数从小到大排序外部循环变量i,内部循环变量j,中间变量t。以下是c语言代码实现。

2023-06-09 09:51:13 94

空空如也

空空如也

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

TA关注的人

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