- 博客(7)
- 收藏
- 关注
原创 Elasticsearch-倒排索引
单词-文档矩阵是表达两者之间所具有的一种包含关系的概念模型,图1展示了其含义。下图的每列代表一个文档,每行代表一个单词,打对勾的位置代表包含关系。从纵向即文档这个维度来看,每列代表文档包含了哪些单词,比如文档1包含了词汇1和词汇4,而不包含其它单词。从横向即单词这个维度来看,每行代表了哪些文档包含了某个单词。比如对于词汇1来说,文档1和文档4中出现过单词1,而其它文档不包含词汇1。矩阵中其它的行列也可作此种解读。搜索引擎的索引其实就是实现“单词-文档矩阵”的具体数据结构。
2024-07-08 11:01:33 1070
原创 ApplicationContext和BeanFactory
BeanFactory是核心接口,项目运行过程中肯定有具体实现参与,这个具体实现就是DefaultListableBeanFactory,而ApplicationContext内部维护的Beanfactory的实现类也是它。Spring 容器将会扫描这些包下的类,寻找那些标记了 @Component、@Configuration、@Service、@Repository、@Controller 等注解的类,并将它们自动注册为 Spring 容器管理的 Bean。方法手动注册配置类或基础包。
2024-06-23 23:58:42 889
原创 java设计模式(单例模式,工厂模式,模板模式,代理模式)
定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决接口选择的问题。我们明确地计划不同条件下创建不同实例时。让其子类实现工厂接口,返回的也是一个抽象的产品。创建一个接口创建实现接口的实体类。@Override@Override@Override创建一个工厂,生成基于给定信息的实体类的对象。//使用 getShape 方法获取形状类型的对象使用该工厂,通过传递类型信息来获取实体类的对象。
2024-04-21 23:42:13 894 1
原创 Spring循环依赖
1,什么是循环依赖:在spring中,对象的创建是交给Spring容器去执行的,Spring创建的Bean默认是单例的,也就是说,在整个Spring容器中,每一个对象都是有且只有一个。那么这个时候就可能存在一种情况:比如说,有一个A对象,它有一个b属性,还有一个B对象,它有一个a属性。当在对这两个对象进行属性赋值的时候,就会产生循环依赖问题。
2024-04-14 23:57:36 768 1
原创 hashmap
当想要存入一个键值对时,会先调用建key的hashCode()产生一个hash,再通过这个hash确定一个数组索引,接着调用equals()方法与该索引处链表上的各节点中存储的元素比较,当与某个节点中的key的equals比较结果为true,替换该节点中的value,如果与所有节点的key比较结果都为false,则在末尾新建一个Node节点存储该键值对。接下来我们通过hashmap的put()方法了解一下他的扩容过程。resize()方法,用于扩容。hashmap的底层结构;
2024-01-25 22:09:36 477
原创 equals()方法和hashCode()方法
str1.hashCode()和str2.hashCode()虽然是相同的,但之后str1.equals(str2)的结果却是false,因为不重写equals(),str1.equals()调用的是object的equals()方法,比较的是str1和str2的地址,这时集合中可能就会出现两个内容为hello的字符串元素。1.Object类中equals方法比较的是两个对象的引用地址,只有对象的引用地址指向同一个地址时,才认为这两个地址是相等的,否则这两个对象就不想等。
2024-01-24 22:29:54 1335
原创 String ,StringBuilder,StringBuffer存储形式的差异
但AbstractStringBuilder中允许char[]的长度大于内容的字符书,在实例化StringBuilder对象时,会先创建一定长度的char[]数组,并给count初始值为0,表示有效长度为0,当我们拼接字符串时,每次往value中存一个字符,count加1,表示有效长度加1,当value指向的char[]被加满是时,就会新建更大的char[]数组复制之前char[]的内容并将复制到新数组中,并将新数组的地址赋给value从而达到了不定长的效果。
2024-01-19 00:56:46 1082 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人