Java集合&Spring源码浅读
记录自己现在知道的,以后了解了更多的话,再继续补上来
Java集合类
Collection 接口
说明:是List,set 的父类。定义了集合初始模样。集合只存储对象。
Jdk8文档,内部方法定义有:
List接口
说明:有序集合,可重复,继承Collection。常用实现类ArrayList,LinkedLiist。不常用但是得知道得Vector,Stack
ArrayList: 数组集合 查询快 ,增删慢
LinkedList: 链表集合 查询慢 增删快
vactor 线程安全 stack
Set接口
说明:无序集合,不可重复,继承Collection。常用实现类 HashSet,TreeSet ,LinkedHashSet。
HashSet : 无序不重复 内部实现原理 参考HashMap,相同的Value,不同的Key
LinkedHashSet :双向链表。内部实现原理参考LinkedHashMap,按照插入顺序排序。
TreeSet :红黑树。内部实现原来参考TreeMap。
Map接口
说明: 不能重复 key-value组成的entry对象 内部数据结构为数组链表 通过key的hashCode 进行hash算法 确定该entry放这个数组的哪里 如果该位置上有entry在上面的话 用equals 判断内容是否相等 如果不相等 该位置变成链表形式 该entry防止链表头部(醒来的用到的频率更高) 常用实现类:HashMap LinkedHashMap TreeMap hashTable
HashMap :不可重复,无序,数组链表 entry对象为内部数据结构
HashTable :线程安全 没具体研究过 sycn 修饰整个方法
LinkHashMap: 链表Hash 有序 按照插入顺序排序
TreeMap: 红黑树 Hash 有序 实现了SortMap 按照key大小排序 也可以定制排序规则
queue
queue 队列
spring源码深度解析总结
Spring IOC容器的基本实现
- 将资源文件 也就是XML文件用ResourceLoader 读取成Resource资源,
- 再将Resource用DocumentLoader读取Resource变成Document。
- 然后用BeanDoucmentReader进行Document读取,属性的解析变成Bean,
- 注册到IOC容器上。
XML文件验证
XML文件验证分为DTD ,XSD
DTD XML文件规则的定义 spring自定了DTD
XTD DTD+XML 用Spring定义的规则 定义XML文件 xsd: 命名空间
xsd:scamalLocation = 文件规则存储路径