學Java也有好一陣子了,當涉及到Java的實際應用時發現自己的基礎跟不上。基礎不行,概念不清,對以后的學習造成不小的負面影響。仔細分析后,自己總結了一些Java里面很基礎的東西,希望以后把基礎打好,高手就不必過目了呀,哈哈~~~

一、有關super跟this的區別。

區別

Super

This

范圍

由子類訪問父類的內容

直接訪問本類中的內容

訪問屬性

super.父類屬性,如果屬性沒有被覆寫,則也可以不寫super。

This.本類屬性。

訪問方法

super.父類方法(),如果方法沒有被覆寫,則可以不用加super也表示調用父類中的方法。

this.本類方法(),可以不寫this,也表示調用本類的方法。

訪問構造方法

super是訪問父類中的構造方法,必須放在首行。

this 是訪問本類中的其他構造方法,必須放在首行。

 

二、重載和重寫的區別。

區別

重載

重寫/覆寫

單詞

Overloading

Override

概念

方法名稱相同,參數列表不同。

方法名稱相同,參數列表相同,方法的訪問權限不能更嚴格。

范圍

發生在一個類中。

發生在繼承關系中,由子類進行覆寫。

三、Vector和ArrayList

   1.vector是線程同步的,所以它也是線程安全的,而arraylist是線程異步的,是不安全的。如果不考慮到線程的安全因素,一般用
       arraylist效率比較高。
   2.如果集合中的元素的數目大于目前集合數組的長度時,vector增長率為目前數組長度的100%,而arraylist增長率為目前數組長度

      的50%.如過在集合中使用數據量比較大的數據,用vector有一定的優勢。
    ArrayList 和Vector是采用數組方式存儲數據,此數組元素數大于實際存儲的數據以便增加和插入元素,都允許直接序號索引元素,
    但是插入數據要設計到數組元素移動等內存操作,所以索引數據快插入數據慢,Vector由于使用了synchronized方法(線程安全)所以性能上比ArrayList要差,
    LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行向前或向后遍歷,但是插入數據時只需要記錄本項的前后項即可,所以插入數度較快!

四、arraylist和linkedlist

     1.ArrayList是實現了基于動態數組的數據結構,LinkedList基于鏈表的數據結構。
     2.對于隨機訪問get和set,ArrayList覺對優于LinkedList,因為LinkedList要移動指針。
     3.對于新增和刪除操作add和remove,LinedList比較占優勢,因為ArrayList要移動數據。
       這一點要看實際情況的。若只對單條數據插入或刪除,ArrayList的速度反而優于LinkedList。
       但若是批量隨機的插入刪除數據,LinkedList的速度大大優于ArrayList. 因為ArrayList每插入一條數據,要移動插入點及之后的所有數據。

五、HashMap與TreeMap

       1、HashMap通過hashcode對其內容進行快速查找,而TreeMap中所有的元素都保持著某種固定的順序,如果你需要得到一個有序的結果你就應該使用TreeMap(HashMap中元素的排列順序是不固定的)。

          HashMap中元素的排列順序是不固定的)。

       2、HashMap通過hashcode對其內容進行快速查找,而TreeMap中所有的元素都保持著某種固定的順序,如果你需要得到一個有序的結果你就應該使用TreeMap(HashMap中元素的排列順序是不固定的)。集合框架”提供兩種常規的Map實現:HashMap和TreeMap (TreeMap實現SortedMap接口)。

       3、在Map 中插入、刪除和定位元素,HashMap 是最好的選擇。但如果您要按自然順序或自定義順序遍歷鍵,那么TreeMap會更好。使用HashMap要求添加的鍵類明確定義了hashCode()和 equals()的實現。  這個TreeMap沒有調優選項,因為該樹總處于平衡狀態。

六、hashtable與hashmap

     1.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現

     2.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的

     3.值:只有HashMap可以讓你將空值作為一個表的條目的key或value

七、Set中的數據對象沒有順序且不可以重復。
      List中的數據對象有順序且可以重復。