自定义博客皮肤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中的缓存血崩、击穿、穿透以及内存淘汰策略

缓存雪崩:是指在同一时段的或者Redis,导致到达,带来巨大压力。解决方案:(1)给不同的Key的TTL添加随机值。(2)利用Redis集群提高服务的可用性。(3)给缓存业务添加降级限流策略。(4)给业务添加多级缓存。

2024-10-14 19:21:01 1044

原创 Spring Boot的自动配置原理

SpringBootApplication 注解通常放置在上,这个类也是的。Spring Boot 应用启动时,会读取这个注解,并根据其配置来设置 Spring 应用上下文。@SpringBootApplication 是 Spring Boot 应用中最常用的注解,它是一个组合注解。进入 @SpringBootApplication 注解。Spring Boot 的功能,根据类路径中的 jar 依赖和其他条件,自动配置 Spring 应用。@ComponentScan 指示 Spring 在。

2024-10-07 18:06:51 930

原创 Elastic Search的倒排索引库

先来了解几个概念。文档用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息。词条Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我是中国人,就可以分为:我、是、中国人、中国、国人这样的几个词条。什么是正向索引?例如给下表(tb_goods)中的id创建索引:如果是根据id查询,那么直接走索引,查询速度非常快。但如果是基于title做模糊查询,只能是逐行扫描数据,流程如下:用户搜索数据,条件是title符合。

2024-09-29 17:46:42 747

原创 Spring Bean的生命周期

首先,我们来看一下Bean实例化的基本流程。Spring容器在进行初始化时,会将xml配置的的信息封装成一个。然后,所有的BeanDefinition存储到一个名为中去,Spring框架再对该Map进行遍历,使用创建Bean实例对象。最后,创建好的Bean对象存储在一个名为中,当调用 getBean 方法时则最终从该Map集合中取出Bean实例对象返回。

2024-09-22 20:33:22 577 1

原创 Spring中的循环依赖

在Spring框架中,循环依赖是一个常见的问题,特别是在依赖注入(DI)的上下文中。多个实体之间相互依赖并形成闭环的情况就叫做"循环依赖",也叫做"循环引用"。例如:Bean A 依赖于 Bean B。Bean B 依赖于 Bean A。这种情况会导致Spring在创建这些Bean时陷入困境,因为它们需要互相的存在来完成初始化。

2024-09-17 19:03:34 396

原创 JDBC连接数据库

动态加载指定类的字节码到JVM中。根据数据库URL、用户名和密码创建数据库连接。创建一个Statement对象。创建一个PreparedStatement对象。设置PreparedStatement的参数值,Xxx是数据类型。执行SQL查询语句并返回ResultSet对象。执行SQL更新语句(如INSERT、UPDATE、DELETE)并返回更新的行数。移动到ResultSet的下一行。返回指定列的数据,Xxx是数据类型。关闭数据库连接。关闭Statement对象。关闭ResultSet对象。

2024-08-14 21:42:11 1295

原创 HashMap的存储原理

由前面可知,HashMap是基于哈希表实现的,它的数据结构主要由数组链表和红黑树组成。(1)数组:①HashMap 的主体是一个数组。②元素数量是固定的,由HashMap的容量决定。默认情况下,HashMap的初始容量是 16。2. 链表和红黑树:①HashMap也使用链表或者红黑树来存储键值对。②当链表长度超过阈值(默认为 8)时,链表会被转换成红黑树,以提高查找、插入和删除操作的效率。③这种数据结构的选择(链表还是红黑树)取决于键值对数量的多少和性能的需求。

2024-07-21 18:09:44 932

原创 ArrayList和LinkedList的比较

首次添加元素时,calculateCapacity方法返回的值为10(因为DEFAULT_CAPACITY的值为10),然后再回到ensureExplicitCapacity方法中,进入到if判断,符合条件,进入到grow方法中。1.随机访问性能:如果需要频繁通过索引访问列表中的元素,ArrayList由于其基于数组的实现,提供了常数时间复杂度的访问性能(O(1)),而LinkedList在进行随机访问时需要从头节点或尾节点开始遍历,时间复杂度为O(n)。LinkedList的插入和删除操作只需。

2024-07-14 17:09:38 4587

原创 StringBuilder与StringBuffer的底层存储原理

StringBuilder和StringBuffer的扩容策略都是通过动态调整字符数组的大小来实现的,保证了字符串操作的高效性和可扩展性。理解它们的扩容机制有助于我们编写出性能更优的字符串处理代码,在应对不同需求时选择合适的类进行使用。这种设计保证了在大部分情况下,字符串操作的性能是高效的,因为不需要频繁地重新分配和复制数组,而只在必要时进行扩容操作。

2024-07-07 17:34:38 2099

空空如也

空空如也

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

TA关注的人

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