- 博客(6)
- 收藏
- 关注
原创 spring中bean的循环依赖及解决方案
Spring循环依赖指的是在Spring应用程序中,两个或多个Bean之间相互依赖,导致一个Bean的创建依赖于另一个Bean的创建,而后者又依赖于前者,从而形成一个循环依赖。通常,这种依赖关系会导致Bean的创建失败。例如,假设有两个类A和B在这种情况下,Spring无法初始化这两个Bean,因为A依赖于B的实例化,而B依赖于A的实例化,形成了一个循环依赖。
2024-07-22 09:21:12
451
原创 Elasticsearch搜索为什么这么快以及倒排索引的原理
Elasticsearch 是一个分布式搜索引擎,可以在多台机器上分布和存储数据,充分利用集群的计算资源和存储能力,从而提高查询速度。:Elasticsearch 使用倒排索引来存储文档,这是一种高效的数据结构,允许快速查找包含特定词语的文档。每个词语都有一个包含所有包含该词语的文档ID的列表。:Elasticsearch 将数据分成多个分片(shard),每个分片可以独立地进行搜索操作,从而并行化查询任务。此外,每个分片还可以有多个副本(replica),以提高查询的并发性和容错能力。
2024-07-07 22:26:05
489
原创 Spring中bean的生命周期
Spring通过依赖注入(setter注入或构造函数注入)将配置文件中指定的属性值或依赖对象注入到bean实例中。伴随容器的关闭,自动回收一部分javabean对象, 回收时会自动调用接口的销毁以及属性的销毁。1.项目启动后,spring委派给bean的信息读取器读取xml或注解,将每个bean。另外,如果在bean配置中指定了自定义的初始化方法,Spring也会调用该方法。同样,如果在bean配置中指定了自定义的销毁方法,Spring也会调用该方法。在属性注入完成后,如果bean实现了。
2024-07-01 00:53:04
154
原创 BeanFactory和ApplicationContext有什么区别?
在Spring框架中,和都是用于管理和配置应用程序对象的容器(即IoC容器),但它们有一些重要的区别。
2024-06-23 12:57:59
413
原创 Arraylist扩容机制
ArrayList是 Java 中的一个常用集合类,其内部实现是基于数组的,可以通过下标来访问和修改其中的元素。在操作 `ArrayList` 时,如果我们向其中添加的元素个数超过了已分配的数组长度,则需要对数组进行扩容。这也是 `ArrayList` 能够自动扩容的原因。
2024-03-25 08:52:39
1383
原创 String builder String buffer 扩容机制
此外StringBuffer和StringBuilder的区别就在于StringBuffer的操作使用synchronized关键字加了锁,是线程安全的。StringBuffer和StringBuilder扩容都是通过共同父类AbstractStringBuilder实现的。,count为追加长度。所以在设计时应该避免,最好能在初始时设置一个合理的容量。另外还提供了方法用于用户测试调用的扩容方案,在追加超长字符串时可减少多次自动扩容的花销。,n为扩容前容量,如果追加后长度超出则扩容为。
2024-03-18 00:41:13
897
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人