- 博客(10)
- 收藏
- 关注
原创 yum安装源报错
发现registry.cn-hangzhou.aliyuncs.com 超时,大致提示:正在尝试其它镜像。禁用之后使用yum repolist all 当前源不再提示:正在尝试其他镜像,而是如上图右侧显示仅用。同样操作删除所有不正常的镜像后,安装docker恢复正常。
2023-06-16 11:35:48 5260
原创 SpringBoot启动流程
启动流程:spring-boot 和 spring-boot-autoconfig 依赖包中有下面的配置文件 spring.factories:记录一些类的完全限定名(包名+类名)找的7个初始化器和1个监听器的包名+类名,并通过newInstance 分别set到对应的一个list集合返回run() 方法1.StopWatch start()、stop() 方法计时,开始方法获取系统时间,结束方式计算用时。2.创建空集合准备放异常类3.获取监听对象,执行启动事件4...
2023-04-27 12:11:29 84
原创 MySQL InnoDB数据表不设置主键
3、第三种情况:用户既没有定义主键,也没有定义唯一索引,那么InnoDB会自动生成一个不可见的ROW_ID的列名为GEN_CLUST_INDEX的聚簇索引,该列是一个6字节的自增数值,随着插入而自增。而且不设置主键不单单影响到查询,在进行写操作的时候,由于ROW_ID是共享的,这意味着插入的时候需要共享该序列,那么高并发插入的时候为了保持唯一性就避免不了锁的竞争,进而影响性能。由以上分析可以推论,在建表的时候无论如何都要设置主键,如果没有可用作主键的字段,可以设计一个业务无关的字段,比如xx_id。
2022-11-11 13:37:44 848
原创 mysql 短索引
对于BLOB,TEXT,或者很长的VARCHAR类型的列,必须使用前缀索引,因为MySQL不允许索引这些列的完整长度。索引的选择性是指不重复的索引值(也称为基数,cardinality)和数据表的记录总数的比值,范围从1/T到1之间。为了决定前缀的合适长度,需要找到最常见的值的列表,然后和最常见的前缀列表进行比较。当然还有另外更方便的方法,那就是计算完整列的选择性,并使其前缀的选择性接近于完整列的选择性。的选择性是1,这是最好的索引选择性,性能也是最好的。优点:前缀索引是一种能使索引更小,更快的有效办法。
2022-11-11 13:29:37 222
原创 ArrayList和LinkedList区别
下图,计算机给数组 a[10],分配了一块连续内存空间 1000~1039,其中,内存块的首地址为 base_address = 1000。我们知道,计算机会给每个内存单元分配一个地址,计算机通过地址来访问内存中的数据。我们举的这个例子里,数组中存储的是 int 类型数据,所以 data_type_size 就为 4 个字节。LinkedList:除了存储数据还会存储指向下个数据的指针,插入删除修改指针,增删快,查询慢。扩展:数组查询快是因为数组的特性是 连续的内存空间和相同类型的数据,
2022-10-12 16:44:44 70
原创 反射的四种方式
反射:通过Class类(入口) ---》获取具体类的实例 ----》获取的具体信息(属性,方法)获取字节码方式:方式一、方式二bu'c
2021-06-14 23:47:55 670
转载 JDK1.8 创建线程池有哪几种方式
newFixedThreadPool定长线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程数量不再变化,当线程发生错误结束时,线程池会补充一个新的线程测试代码:public class TestThreadPool { //定长线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程数量不再变化,当线程发生错误结束时,线程池会补充一个新的线程 static ExecutorService fixedExecutor = Executo...
2021-04-09 16:27:15 206
原创 hashmap
hashmap的数据结构要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,hashmap也不例外。Hashmap实际上是一个数组和链表的结合体(在数据结构中,一般称之为“链表散列“,jdk1.8中为数组+链表+红黑树),请看下图(横排表示数组,纵排表示数组元素【实际上是一个链表】)。从图中我们可以看到一个hashmap就是一个数组结构,当新建一个hashmap..
2021-04-09 16:19:45 88
转载 线程start() 和 run()区别
1.创建线程池有哪几种方式?调用 start() 方法是用来启动线程的,轮到该线程执行时,会自动调用 run();直接调用 run() 方法,无法达到启动多线程的目的,相当于主线程线性执行 Thread 对象的 run() 方法。一个线程对线的 start() 方法只能调用一次,多次调用会抛出 java.lang.IllegalThreadStateException 异常;run() 方法没有限制。测试 run() 方法public class TestThreadRunStart {.
2021-04-02 10:14:19 72
原创 解决mysql免安装缺失msvcr120.dll
之前运行没有认识问题,后来突然运行提示服务启动失败,用cmd运行” mysqld –install “命令提示缺失msvcr120.dll,直接下载工具安装解决https://www.microsoft.com/zh-cn/download/details.aspx?id=40784...
2021-03-26 12:46:13 124 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人