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 = 文件规则存储路径
Java集合&Spring源码浅读的更多相关文章
- 【java集合框架源码剖析系列】java源码剖析之TreeSet
本博客将从源码的角度带领大家学习TreeSet相关的知识. 一TreeSet类的定义: public class TreeSet<E> extends AbstractSet<E&g ...
- 【java集合框架源码剖析系列】java源码剖析之HashSet
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本.本博客将从源码角度带领大家学习关于HashSet的知识. 一HashSet的定义: public class HashSet&l ...
- 【java集合框架源码剖析系列】java源码剖析之TreeMap
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本.本博客将从源码角度带领大家学习关于TreeMap的知识. 一TreeMap的定义: public class TreeMap&l ...
- 【java集合框架源码剖析系列】java源码剖析之ArrayList
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本. 本博客将从源码角度带领大家学习关于ArrayList的知识. 一ArrayList类的定义: public class Arr ...
- 【java集合框架源码剖析系列】java源码剖析之LinkedList
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本. 在实际项目中LinkedList也是使用频率非常高的一种集合,本博客将从源码角度带领大家学习关于LinkedList的知识. ...
- 【java集合框架源码剖析系列】java源码剖析之HashMap
前言:之所以打算写java集合框架源码剖析系列博客是因为自己反思了一下阿里内推一面的失败(估计没过,因为写此博客已距阿里巴巴一面一个星期),当时面试完之后感觉自己回答的挺好的,而且据面试官最后说的这几 ...
- Java集合框架源码(二)——hashSet
注:本人的源码基于JDK1.8.0,JDK的版本可以在命令行模式下通过java -version命令查看. 在前面的博文(Java集合框架源码(一)——hashMap)中我们详细讲了HashMap的原 ...
- Spark 源码浅读-SparkSubmit
Spark 源码浅读-任务提交SparkSubmit main方法 main方法主要用于初始化日志,然后接着调用doSubmit方法. override def main(args: Array[St ...
- Java集合-ArrayList源码解析-JDK1.8
◆ ArrayList简介 ◆ ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAcc ...
随机推荐
- “Uncaught TypeError: string is not a function”
http://www.cnblogs.com/haitao-fan/archive/2013/11/08/3414678.html 今天在js中写了一个方法叫做search(),然后点击按钮的时候提示 ...
- 20145215卢肖明《网络对抗》逆向及Bof基础
20145215卢肖明<网络对抗>逆向及Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任 ...
- Spark记录-Scala记录(基础程序例子)
import scala.util.control._ object learnning { def main(args:Array[String]):Unit={ val n:Int=10 prin ...
- 运行fdisk命令时,弹出 bash:fdisk:command not found
原因:命令fdisk 不在你的命令搜索路径中 第一种解决办法,将fdisk添加到你的命令搜索路径中 首先查看你当前的命令搜索路径: [root@host sbin]# echo $PATH/usr/k ...
- Why is my Spring @Autowired field null?
spring有@Autowired 空指针异常 https://stackoverflow.com/questions/19896870/why-is-my-spring-autowired-fiel ...
- 英文写作指南——《“compare to”等同“compare with”吗?》
- html5 canvas loading(这可怕的编辑器,自动把我的canvas转义了)---以前收藏的整理了一下
/* super inefficient right now, could be improved */ var c = document.getElementById('canvasload'), ...
- 【干货】linux系统信息收集 ----检测是否被恶意程序执行了危险性命令
这些实战完全可以练习以下命令,已经找到需要观察的交互点,真实工作的时候,把数据都导入到自己U盘或者工作站内. 在kali 或者centos下训练都一样,关于kali教学,这里推荐掌控安全团队的课程:掌 ...
- linux磁盘空间查看inode
服务器一般是要求长期连续运行的,自动执行任务生成的各种文件及日志,可能使空间占满,从而造成业务故障,所以要定时清理. 一般来说,Linux空间占满有如两种情况: 1.空间被占满了 用df -k 可以看 ...
- crontab每10秒钟执行一次
1.使用sleep 在crontab中加入 * * * * * sleep 10; /bin/date >>/tmp/date.txt* * * * * sleep 20; /bin/da ...