SpringApplication#run 调用两次

在使用nacos作为配置中心的过程中,debug源码的过程中发现,作为启动类的SpringApplication#run这个方法会调用两次,就很奇怪。

共识算法 raft

raft是一种易于理解的一致性算法

java 虚拟机回收

介绍jvm垃圾回收算法

jdk8时间类

记录jdk相关的时间类的使用方式

拦截器

springboot中的拦截器介绍

springboot自定义属性

spring boot 实现自定义属性

mysql索引

mysql 最左匹配原则理解

mysql 最左匹配原则跟where条件顺序有没有关系呢?

经过验证,没有关系,只要where条件中的字段能跟索引字段匹配,且满足最左匹配原则就可以使用索引

快排算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class QuickSort {

public static void main(String[] args) {
int[] numbers = {10, 3, 11, 9, 5};

quickImpl(numbers, 0, numbers.length -1);

Stream.of(numbers).forEach(System.out::println);
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}

}

private static void quickImpl(int[] arr, int l, int h) {
if (l >= h) return;
int mid = l;
int i = l;
int j = h + 1;
while (i < j) {
while (arr[++i] < arr[mid]) if (i == h) break;
while (arr[--j] > arr[mid]) if (j == l) break;
if (i > j) break;
exch(arr, i, j);
}
exch(arr, mid, j);

quickImpl(arr, l, j - 1);
quickImpl(arr, j + 1, h);
}

private static void exch(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}


}

nodejs 校验框架joi

joi 是一个nodejs的校验框架,用来校验前端传入参数。joi使用方便,能够支持大部分场景,大量减少校验代码的编写。

记录一次go全局变量赋值的问题

go 语言给变量赋值

我们先看看go语言如何给一个变量赋值

1
2
3
4
5
6
# 第一种, 在声明的同时进行赋值的话,是可以不用指定变量的类型的,如果只是声明的话,是需要的
var num int = 0
var num = 0

# 第二种, 不用写var关键字,使用新的赋值符号“:=” ,如下,跟上面的声明式变量是一样的
num := 0