1. 程式人生 > >Java集合&Spring原始碼淺讀

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容器的基本實現

  1. 將資原始檔 也就是XML檔案用ResourceLoader 讀取成Resource資源,
  2. 再將Resource用DocumentLoader讀取Resource變成Document。
  3. 然後用BeanDoucmentReader進行Document讀取,屬性的解析變成Bean,
  4. 註冊到IOC容器上。

XML檔案驗證

XML檔案驗證分為DTD ,XSD

DTD XML檔案規則的定義 spring自定了DTD

XTD DTD+XML 用Spring定義的規則 定義XML檔案 xsd: 名稱空間

xsd:scamalLocation = 檔案規則儲存路徑