自定义博客皮肤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)
  • 收藏
  • 关注

原创 ES的倒排索引是什么

分词后,文档变成了一个单词的集合,但是,在这个集合中,可能存在一些无意义的,错误的,或重复的单词,那么,在标准化阶段,就是要把这些内容处理掉,以避免这些单词进入词典,影响词典的质量。通常情况下,ES内置的分词器对中文是不友好的,所以,第三方分词器或者自定义分词器,对于中文搜索站点来说,是必须要做的。就是把正序索引反过来。一个文档由许多的单词组成,我们交给ES的文档的越多,分析拆分后得到的单词就越多,这些单词被整理组织成一个集合,集合中的每个元素记录了单词本身的一些相关信息以及一个指定倒排列表的指针。

2024-07-07 22:05:30 446

原创 bean的生命周期

bean 的生命周期其实指的就是 Spring 创建 bean 的一个过程。这个过程并不复杂,主要有以下四个步骤:实例化、属性注入、初始化,以及最后的销毁。但是对于一些复杂 (例如依赖关系比较复杂) 的 bean ,其创建可能会多一些步骤,因为现实情况中 Spring 会在 bean 的生命周期中开放很多的接口,让我们加载 bean 的时候对 bean 做一些自定义操作 (不过通常情况下我们是用不到的)。当Spring容器启动时,它会创建。,并执行所有初始化工作,包括调用。当容器关闭时,它会调用。

2024-06-30 18:47:19 235

原创 BeanFactory和ApplicationContext有什么区别?

当我们使用ApplicationContext去获取bean的时候,在加载XXX.xml的时候,会创建所有的配置bean,该文件中配置的bean都会被实例化。BeanFactory是Spring里面最低层的接口,是IOC的核心,定义了IOC的基本功能,包含Bean的定义、加载、实例化、依赖注入以及生命周期的管理等。2. 在启动的时候所有的Bean都加载了,我们就能在系统启动的时候,尽早的发现系统中的配置错误,这样有利于检查所依赖属性是否注入。1. 所有的Bean在启动的时候都加载,系统运行的速度快;

2024-06-24 10:54:49 419

原创 Spring boot的装配原理

自动装配是springboot的核心,一般提到自动装配就会和springboot联系在一起。实际上 Spring Framework 早就实现了这个功能。Spring Boot 只是在其基础上,通过 SPI 的方式,做了进一步优化。没有 Spring Boot 的情况下,如果我们需要引入第三方依赖,需要手动配置,非常麻烦。但是,Spring Boot 中,我们直接引入一个 starter 即可。比如你想要在项目中使用 redis 的话,直接在项目中引入对应的 starter 即可。

2024-05-06 20:22:28 493 1

原创 spring框架常用的设计模式以及应用场景

Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用JDK Proxy去进行代理了,这时候Spring AOP会使用Cglib,这时候Spring AOP会使用Cglib生成一个被代理对象的子类来作为代理。Resource接口本身没有提供访问任何底层资源的实现逻辑,针对不同的额底层资源,Spring将会提供不同的Resource实现类,不同的实现类负责不同的资源访问类型。

2024-04-22 00:35:13 741 1

原创 如何解决循环依赖问题

‎在Spring中,有很多方法可以处理循环依赖关系。首先要考虑的是重新设计,这样就不需要循环依赖关系。‎‎但是如果项目中具有循环依赖项,则可以按照以上建议进行修改。

2024-04-14 23:53:53 986 1

原创 HashMap源码分析

HashMap 是基于哈希表的 Map 接口的实现,是以 key-value 存储形式存在,即主要用来存储键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。无序、key唯一,value允许重复,它的 key、value 都可以为 Null。另外,HashMap 中的映射不是有序的,即HashMap无序。加载因子(LoadFactor)的默认值为0.75f,数组容量默认为16,当HashMap中元素个数超过16 × 0.75=12的时候,数组就会扩容。通过putVal()进入。

2024-01-25 22:49:06 239

原创 为什么重写equals方法要重写hashCode()

因为Hash⽐equals⽅法的速度更快,所以在涉及到hashCode的容器中(⽐如HashSet),判断自己是否持有该对象时,会先检查hashCode是否相等,如果hashCode不相等,就会直接认为不相等,并存⼊容器中,不会再调⽤equals进行比较。如果HashCode不同,就说明元素不相同,将元素添加到集合中,如果HashCode相同,则继续判断equals。是去重的逻辑,存储数据的时候,会先判断key值的hashcode,然后再去用equals进行比较,从而实现去重。

2024-01-24 20:06:56 338

原创 String,Stringbuilder以及Stringbuffer的区别

append(String str)方法中ensureCapacityInternal(count + len)就是有关扩容的方法,count是全局变量(没有初始化的全局变量默认值为 0),len是加进来的字符串长度。startsWith()和endsWith()方法是用于判断字符串是否以指定字符串开头或结尾,返回值为boolean类型;调用了append(Object obj)方法,追加了一个字符串,这里是通过super调用了父类的append()方法。append()是追加字符串。

2024-01-18 20:55:37 874 1

空空如也

空空如也

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

TA关注的人

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