自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Waiting的博客

啥也不是

  • 博客(41)
  • 收藏
  • 关注

原创 nacos集群部署和VIP部署

nacos集群部署和VIP模式部署

2024-08-31 12:34:42 1071

原创 mybatis-plus模板引擎代码生成

Gradle依赖:dependencies { // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter implementation 'org.springframework.boot:spring-boot-starter' // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot

2024-07-19 15:08:33 846

原创 Springboot使用WebSocket发送消息

调用WebSocketHandlerRegistry 的addHandler方法传递处理器和路径。再调用WebSocketHandlerRegistry 的setAllowedOrigins方法传递星号,允许跨域访问。在MyWsHandler中,handleTextMessage方法使用的是单播发送消息,如果要给客户端/浏览器端发送广播消息该如何发送呢,只需遍历所有客户端/浏览器端的Session即可,通过Session广播消息。setAllowedOrigins()方法设置允许源,传递星号,否则跨域。

2024-07-07 15:41:26 536

原创 Excel文件处理工具类

实体:添加上@Excel注解@Data@TableName("location_data")@Schema(description = "库区垛位管理表(location_data)")@Accessors(chain = true)public class LocationData implements Serializable { @Serial private static final long serialVersionUID = 1L; @TableId(val

2024-06-05 08:41:16 172

原创 MySQL索引的失效与优化

在大多数情况下,我们习惯使用默认的 InnoDB 作为表存储引擎。在使用 InnoDB 作为存储引擎时,创建的索引默认为 B+ 树数据结构,如果是主键索引,则属于聚族索引,非主键索引则属于辅助索引。基于主键查询可以直接获取到行信息,而基于辅助索引作为查询条件,则需要进行回表,然后再通过主键索引获取到数据。如果只是查询一列或少部分列的信息,我们可以基于覆盖索引来避免回表。覆盖索引只需要读取索引,且由于索引是顺序存储,对于范围或排序查询来说,可以极大地极少磁盘 I/O操作。

2024-05-10 11:22:39 567

原创 MySQL数据库事务调优

MySQL调优之事务:高并发场景下的数据库事务调优

2024-05-10 10:09:39 561

原创 慢SQL语句诊断分析和优化

在开发中,我们要尽量写出高性能的 SQL 语句,但也无法避免一些慢 SQL 语句的出现,或因为疏漏,或因为实际生产环境与开发环境有所区别,这些都是诱因。面对这种情况,我们可以打开慢 SQL 配置项,记录下都有哪些 SQL 超过了预期的最大执行时间。

2024-05-09 15:26:10 1055

原创 SpringBoot使用Gradle构建多模块项目

Gradle由于构建速度比Maven快,且比Maven灵活,因此很多后端的应用都使用了Gradle进行构建,但一个问题是,Gradle的多模块项目比较难构建,再加上Gradle的更新非常快,这就给构建一个多模块Gradle项目造成了不少的困难。的方式来构建一个多模块项目。

2023-12-01 11:57:58 1448

原创 上传本地项目到GitLab

在团队项目开发中,我们一般都是通过拉取别人的项目代码到本地中,但是如果是自己新建一个项目后,如何让别人拉取你的代码呢,这就涉及到将自己的本地项目放到远程中供别人拉取自己的项目代码。gitlab仓库拿到之前建的项目的地址,然后建立本地仓库和远端gitlab仓库关系:.2.在gitLab上创建新工程后,然后接下来将本地的项目代码上传到远程。然后进入到项目文件夹里面,鼠标右击,点击GIt bash here。1.首先在gitlab上创建一个空项目。

2023-03-29 17:06:52 3385

原创 springboot实现AWS3文件上传和下载

springboot实现AWS3文件上传和下载

2023-03-24 17:51:49 1409

原创 minio文件服务器的上传与下载

至此项目中文件的上传与下载就可以通过引入工具类中的方法来实现。config包下文件配置。

2023-03-16 08:56:39 676

原创 spring boot整合xxl-job分布式调度框架

xxl-job分布式任务调度中心

2023-03-13 11:47:15 273

转载 Mybatis-Plus的and or嵌套使用

mybatis-plus的and 和or的嵌套使用

2023-03-11 08:47:04 5154

原创 MPJ多表连表查询(包含分页)

MPJ

2023-03-08 18:03:40 3739 1

转载 java动态获取级联表单

java级联表单获取

2023-03-01 10:27:08 488

原创 PageResult多表查询

PageResult多表查询

2023-02-27 17:34:35 147

原创 多表条件查询xml文件写sql

多表条件查询xml文件写sql

2023-02-21 21:25:51 736

原创 最全分页查询

项目开发之分页查询

2023-02-08 11:03:34 786

原创 xnio-nio解决方法

xnio-nio问题解决

2022-12-09 10:36:16 660

原创 Nacos集群搭建

Nacos集群搭建

2022-11-01 11:21:55 668

原创 Java消息中间件

nacos多服务共享配置

2022-11-01 10:52:49 139

原创 json字符串、json对象转Java对象,Java对象转json字符串、json对象

json,Java

2022-08-03 14:26:56 160

原创 spring boot集成swagger2版本和swagger3版本

访问网址:http://localhost:8080/swagger-ui/访问网址:http://localhost:8080/doc.html。

2022-08-03 10:40:09 854

原创 Mybatis-plus代码自动生成器

Mybatis-plus代码自动生成器

2022-08-03 09:05:32 697 1

原创 以空间换时间的基数排序

Java排序之基数排序(Radix Sort)基数排序介绍基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法基数排序(Radix Sort)是桶排序的扩展基数排序是 1887 年赫尔曼·何乐礼发明的。它是这样实现的:将整数按位数切割成不同的数字,然

2021-05-08 18:12:18 235

原创 java实现树的递归与非递归遍历

树的递归与非递归遍历基于树的递归遍历,其基本思想简单,从代码可以看出遍历根节点和左右子树的先后顺序,代码如下所示:import java.util.ArrayList;import java.util.Collections;public class RecusionBinaryTreeTraverse { public static void main(String[] args) { TreeNode root = BuildTree.buildTree();

2021-05-05 18:02:42 429

原创 详解java排序、查找和哈希表算法

java排序及查找算法汇总排序1)内部排序:指将需要处理的所有数据都加载到**内部存储器(内存)中进行排序。2)外部排序:数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)**进行排序。3)常见的排序算法分类:(一)冒泡排序1.算法思想:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列

2021-03-03 17:42:37 287 1

原创 Java排序之归并排序

归并排序package Algorithm;import java.util.Arrays;//归并排序public class Demo6 { public static void main(String[] args) { int[] arr = {8, 4, 5, 7, 1, 3, 6, 2}; int[] temp = new int[arr.length]; mergeSort(arr, 0, arr.length - 1, te

2020-12-15 17:34:06 116 2

原创 Java排序之快速排序

快速排序快速排序介绍: 它是对冒泡排序的一种改进。其基本思想是:选定一个数值,通过一趟排序将要待排序的数据分割成独立的两部分,其中一部分的所有数据要比选定的值要小。另外一部分的所有数据要比选定的值要大,然后再按此方法对这两部分的数据再进行分割,再排序。整个排序的过程可以递归进行,以此达到整个数据变成有序序列。如下图是排序算法的示意图:从图看以看出,每次选定一个基准值,将数据分成两个部分,左边的部分比基准值小,右边的部分比基准值大,不断的循环此过程,最终得到多个有序序列,再将这些有序序列合并起来,就是

2020-12-11 14:02:23 172 1

原创 Java排序之希尔排序

希尔排序引入:前面的博客已经讲了插入排序,插入排序的思想是将一个待排序数组分成有序和无序的两部分,每次从无序部分中选择一个数插入到有序组数中合适的位置,由于每次插入的过程中都要和已经有序中的数作比较,来确定合适的插入位置,因此当插入的数较小时,那么就会和前面已经有序的数比较的次数较多,因此针对插入排序的缺点,提出了希尔排序。下面将着重讲解希尔排序的思想和原理实现过程。希尔排序思想:希尔排序又称缩小增量排序,它的基本思想是将待排序数分成若干组,对每一组采用直接插入排序,再将排好序的若干组再分组,并且每次分

2020-12-10 21:15:42 126

原创 Java排序之插入排序

插入排序介绍:插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。插入排序的算法思想:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,找到一个在有序表中正确的插入位置,使之成为新的有序表。如图是插入排序的过程:下面以代码的形式,对插入排序的过程进行讲解。package Algorithm;import jav

2020-12-06 15:34:27 91

原创 详解Java线程中的wait()、notify()、notifyAll()方法

线程中的wait()、notify()、notifyAll()详解在讲解wait()、notify()、notifyAll()方法之前,先了解一下什么是等待队列。所有的实例都拥有一个等待队列,它是在实例的wait方法执行后停止操作的线程的队列。打个比方就是为每一个实例准备的线程休息室。在执行wait方法后,线程便会暂停操作,进入等待队列这个休息室,除非发生下列四种中的某一种情况,否则线程会一直在等待队列中休眠。(1)有其他线程的notify方法来唤醒线程(2)有其他线程的notifyAll方法来唤醒

2020-12-05 18:50:03 2173 1

原创 Java排序之选择排序

选择排序选择排序(select sorting)是一种简单的排序方法。它的基本思想是:第一次从 arr[0]到arr[n-1]中选取最小值,与 arr[0]交换,第二次从 arr[1]到arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]到arr[n-1]中选取最小值,与 arr[2]交换,…,第 i 次从 arr[i-1]到arr[n-1]中选取最小值,与 arr[i-1]交换,…, 第 n-1 次从 arr[n-2]~arr[n-1]中选取最小值,与 arr[n-2]交换,总共通

2020-12-05 17:29:17 140 1

原创 Java排序之冒泡排序

冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。每一趟排序的过程中都将较大的那个值移动到后端,并在后部排好顺序。如给定原始数组:3,-1,6,2,-3第一趟排序过程:(1)-1,3,6,2,-3(2)-1,3,6,2,-3(3)-1,3,2,6,-3(4)-1,3,2,-3,6最终排序的结果为:-1,3,2,-3,6第二趟排

2020-12-05 11:41:48 157

原创 Java中线程的互斥处理

线程的互斥处理互斥:如果一个线程正在执行某一个操作,那么其它的线程就不可以再执行这部分操作。在Java中使用关键字synchronized来执行线程的互斥处理。synchronized方法:如果声明一个方法时,在前面加上关键字synchronized,那么这个方法就只能由一个线程运行。只能由一个线程运行是每次只能由一个线程运行的意思,并不是说仅能让某一个特定的线程运行。这种方法称为synchronized方法。有时也称为同步方法下面通过代码的形式来理解互斥。在这里插入代码片 public stat

2020-12-04 20:53:38 1455 3

原创 java中线程的暂停

线程的暂停Java中线程暂停的方法是sleep方法,并且sleep方法是Thread类的静态方法。下面以代码的形式,使用sleep方法:package Java多线程;public class Demo1 { public static void main(String[] args) throws InterruptedException { for (int i = 0; i <5 ; i++) { Thread.sleep(2000)

2020-12-04 16:17:35 214

原创 Java中线程的启动

线程的启动启动线程的方法有两种:1.利用Thread类的子类实例启动线程2.利用Runnable接口的实现类的实例启动线程线程的启动(1)——利用Thread类的子类直接上代码:线程的启动(2)——利用Runnable接口注意:Runnable接口的实现类必须要实现run方法代码如下:创建Runnable接口的实现类,将实现类的实例作为参数传给Thread的构造函数,调用start方法——这就是利用Runnable接口启动线程的方法。不管是利用Thread类的子类方法(1),还是利用

2020-12-04 15:55:43 77

原创 理解Java中的顺序、并行和并发

理解Java中的顺序、并行和并发顺序:用于表示多个操作 “依次处理”。比如说把十个操作交给一个人来处理,这个人要一个一个的按顺序来处理,类似与只有一个线程的程序,代码块的顺序执行。并行:用于表示多个操作 “同时处理”。比如十个操作分给两个人来处理,这两个人就会并行来处理。并发:相对于顺序和并行来说比较抽象,用于表示“将一个操作”分割成多个部分并且允许无序处理。比如将十个操作分成相对独立的两类,这样便能够开始并发处理了。如果一个人来处理,这个个人就是顺序处理分开的操作,如果是两个人,这两个人就可以

2020-12-04 15:15:02 457

原创 Thread类的run方法和start方法

Thread类的run方法和start方法start方法是Thread类中的方法,用于启动新的线程。而调用run方法时,不会启动新的线程。在调用start方法后,程序会在后台启动新的线程。然后,由这个新的线程调用run方法。start方法主要执行以下操作:1.启动新线程2.调用run方法start方法和run方法之间的关系如下图所示:代码如下:运行结果:总结:使用start方法才能算是真正开启了新的线程,而只使用run方法不能算是开辟一个新的线程,只能算是在某一个单线程中的顺序执行,本

2020-12-04 14:27:28 2475

原创 java数据结构

Java数据结构之栈的使用使用栈的结构,完成一个简单算术表达式的计算:算法步骤分析:使用栈完成表达式的计算思路 94/23+6-6+21.通过一个index值(索引),来遍历表达式2.当遍历的时候,如果发现是一个数字,就直接让其进入到数据栈3.如果遍历扫描的是一个符号,分为如下情况:3.1.如果发现当前的符号栈为空,就直接入栈3.2.如果符号栈有操作符,就进行比较,如果当前的操作符的优先级小于或者等于栈中的操作符,就需要从数栈中pop出两个数,再从符号栈中pop出一个符号,进行运算,将得到

2020-10-18 15:33:15 99

空空如也

空空如也

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

TA关注的人

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