自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis中的缓存雪崩,缓存击穿,缓存穿透问题以及内存淘汰策略

缓存击穿指的是某个热点key,在某一时刻恰好失效了,然后此时刚好有大量的并发请求,此时这些请求将会给数据库造成巨大的压力,这种情况就叫做缓存击穿。

2024-10-13 22:41:19 1137

原创 SpringBoot自动配置原理

springboot的自动装配实际上就是为了从文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理。

2024-10-07 21:47:30 927

原创 Elastic Search的倒排索引库

倒排索引(Inverted Index)是一种索引数据结构,它是搜索引擎中最常用的数据结构之一。与传统的正向索引不同,倒排索引是从单词(或术语)到文档的映射。在正向索引中,是文档指向它所包含的单词;而在倒排索引中,是单词指向包含它的文档列表。

2024-09-29 19:15:57 1052

原创 Bean的生命周期

Bean的生命周期分为五个阶段:实例化阶段、初始化阶段、使用阶段、销毁阶段。

2024-09-22 21:53:31 419

原创 Spring中的循环依赖问题及解决方案

①:A实例化对象时属性注入需要B对象,可在singletonObjects中未找到B对象所有A将自己存放在三级缓存中即未被调用的半成品Bean。③三级缓存:和二级缓存一样也是存放没有被初始化的半成品Bean,与其不同的是三级缓存存放的是没有被其他类引用过的Bean对象。⑤:A开始实例化从一级缓存中找到了B,A也将自己从二级缓存转移至一级缓存变成一个完整的Bean对象。③:B属性注入需要A从三级缓存中找到A,找到后A从三级缓存转移至二级缓存中。①一级缓存:用来储存实例化和初始化好的单例对象。

2024-09-17 19:33:04 383

原创 JDBC连接数据库的步骤

不同的数据库具有不同的通信协议和特性,注册相应的驱动可以确保正确地与目标数据库进行交互。ResultSet对象进行关闭,通常要对关闭的语句进行判断和异常处理,首先要判断其是否为空如果不为空则直接关闭,其次要对语句进行try catch异常处理。next()⽅法:游标向下移动⼀⾏,返回⼀个boolean值。其中参数可以为列的序号名也可以时具体的列名,推荐使用列名书写因为这样可以更直观的知道获取到的数据类型。ResultSet对象维持着⼀个指向表格的⾏的游标,开始时指向表格的起始位置(第⼀⾏之前)。

2024-08-14 21:35:00 700

原创 HashMap底层原理

7.如果同一个位置的连接的元素超过8个,同时table数组的长度小于64,则需进行扩容,当同一个位置的连接的元素超过8个同时数组长度超过64,则改为红黑树的形式连接要添加的元素。6.如果key值相同,则说明发生了hash冲突,此时将要添加的元素以node节点的形式连到原位置元素的后面,先判断是否为树形节点,如果不是则按单向链表的形式进行连接。3.通过table数组长度-1&hash的方法,确定要添加元素所存放的位置,并判断此位置是否已有元素,如果没有则可直接存放。当put是底层的原理为。

2024-07-22 00:45:42 380

原创 Arraylist和linkedlist区别

Arraylist的实现基于动态数组数组,数组元素连续存在数组中,他的底层是当没有存入元素是默认数组长度为10当存入元素超过10时会在底层进行1.5倍扩容,但是有一个弊端就是会造成空间浪费当要存入元素为10000时就会扩容为15000会有多余的空间没被用到,在查询元素的时候很方便可以直接找到元素所在的下表位置,但是当他在中间删除或者添加元素的时候会比较麻烦后面的其他元素的位置也会随之发生改变。

2024-07-14 23:01:20 183

原创 Stringbuilder的底层原理

如果大于当前数组的长度就会进行长度扩容扩容的方式是把数组长度左移1位再加2(*2+2)如果新扩容的数组长度任然小于要添加的字符数则直接将要添加的字符串长度作为数组的新长度,如果该长度小于0或者大于最大限制的长度,会报错否则返回新的长度然后通过Arrays.copyof方法创建一个新的具有新数组长度的数组并将原数组的内容复制给新数组完成扩容。他的底层是一个char类型的数组来存储字符数据可以对数组进行初始化也可以在元素添加时进行扩容。如果小于当前数组长度则直接把字符串添加到数组中。类型的数组value。

2024-07-07 22:41:51 316

空空如也

空空如也

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

TA关注的人

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