1. 程式人生 > >後臺學習之路(一):Java基礎回顧

後臺學習之路(一):Java基礎回顧

         集合:

         單列集合:

                          Collection:單列集合的根介面

                                   List:實現了List介面的集合類,具備的特點:有序、可重複

                                            ArrayList:ArrayList底層是使用Object陣列實現的.特點:查詢速度快,增刪慢.

                                            LinkedList:LinkedList底層是使用了連結串列結構實現的.特點是:查詢速度慢,增刪快.

                                            Vector:底層是使用Object型別的陣列實現的,實現原理和ArrayList是一致的,但其是執行緒安全的,操作效率低.

                                   Set:實現了Set介面的集合類,具備的特點:無序,不可重複.

                                            HashSet:底層是使用雜湊表實現的,特點:存取速度快

         HashSet儲存元素的原理:

                  往HashSet新增元素的時候,首先會呼叫元素的hashCode方法來得到元素的雜湊碼值,然後將雜湊值經過運算算出該元素在雜湊表中的位置.

                  情況一:如果算出的位置還沒有存在的元素,那麼該元素可以直接新增到雜湊表中.

                  情況二:如果算出的位置目前已經存在其他的元素,那麼還會呼叫元素的equsals方法再與這個位置上的元素比較一次.

                                            TreeSet:底層是使用二叉樹(紅黑樹)的資料結構實現的.特點:對集合中的元素進行排序儲存.

         TreeSet的原理:

1.     往TreeSet新增元素的時候,如果元素具備自然排序的特點,那麼TreeSet會根據元素的自然特性進行排序儲存.

2.     --------------------------------------,如果元素不具備自然排序的特點,那麼元素所屬的類就必須實現Compareable介面,將比較的方法放在Compareto方法

3.     --------------------------------------------------------------------------------------,元素所屬的類也沒有實現Compareable介面,那麼在建立TreeSet的時候必須要傳入比較器物件

比較器的語法:

Class 類名 implements Comparator{

}

         雙列集合:Map: 儲存的物件都是以鍵對值的形式存在的,鍵不可以重複,值可以重複

                          HashMap:執行緒不安全,存取速度快.底層是以雜湊表實現的.

TreeMap: 紅-黑樹的資料結構,預設對元素進行自然排序(String),如果在比較的時候兩個物件返回值為0,那麼元素重複.

                          HashTable:底層也是以雜湊表維護的,存取的速度快,儲存元素是無需的.

集合的遍歷方式:

List:使用get方式遍歷

Map:迭代器方式遍歷(使用foreach替代)

         使用entrySet方式.

泛型的好處:

1.     把執行時出現的問題提前到了編譯時.

2.     避免了無謂的強制型別轉換.

3.     注意:在泛型中沒有多型的概念,兩邊的型別必須一致.

IO流:

         解決裝置與裝置之間的資料傳輸問題.

分類:      

輸入流

輸出流

說明

位元組流

InputStream

OutputStream

位元組流是處理位元組的(二進位制)

字元流

Reader

Writer

字元流是處理字元的

注:這幾個類都是抽象類.