閱讀目錄html
5 如何建立線程對象數據結構
6 什麼是泛型,做用?多線程
解析:throws和throw是異常處理時兩個常見的關鍵字,初級程序員經常容易正確理解throw和throws的做用和區別,說明已經能比較深刻理解異常處理。Throw用來拋出異常,若是執行了throw語句,程序將發生異常,進入到異常處理機制。Throws用來聲明異常,說明這個方法可能會發生某些類型的異常,那麼編譯器將強制在調用這個方法的時候處理異常。API中的不少方法都使用了throws聲明瞭異常,因此使用這些方法時編譯器會提示須要處理異常。
參考答案:throw用來在方法體內拋出異常,而throws用來在方法聲明處聲明異常。這兩個關鍵字有着必定的聯繫。若是一個方法中使用了throw關鍵字拋出了異常,那麼要麼當即用try/catch語句進行捕獲,要麼就是用throws進行聲明,不然將出現編譯錯誤。然而,
並非只有使用了throw關鍵字以後才能使用throws關鍵字,語法上來講,任何一個方法均可以直接使用throws關鍵字,抽象方法也可使用。 性能
回到頂部spa
解析:Collection和Map是Java集合框架中兩個基本集合類型,要區別不一樣的集合首先要從Collection和Map開始。
參考答案:Collection接口是傳統的集合接口,能夠把單個對象存儲進來。而Map接口是映射接口,存儲的是鍵值對。
解析:List和Set是Collection接口的兩個子接口,也是使用最多的兩種集合類型。程序員應該熟悉這兩個接口的基本特徵,可以更準確地選擇正確的集合類型。
參考答案:List實現了列表類型的集合,List中的元素是有序(ordered)的,每一個元素根據放入集合的順序而對應一個索引值, 能夠根據這個索引值返回集合原宿。而Set實現了不重複元素集合,即Set中的元素不可以重複,重複的元素將沒法添加到集合中。
解析:List是用的較多的集合類型,List是一個接口,具體使用List集合類型時,須要使用時實現類。List接口的每一個實現類也都實現了不一樣的數據結構,各自具備不一樣的特徵,其中最經常使用的是List實現類。
參考答案:List接口中有如下幾個經常使用實現
1 ArrayList:實現了動態數組的特徵。
2 LinkedList: 實現了鏈表的數據結構,LinkedList也能夠用做棧或者隊列。
3 Vector:向量。
4 ArrayList
Vector類的功能 ArrayList均可以實現,區別在於Vector是現行同步的。
解析:Java 語言可以支持多線程編程,將線程封裝成Thread類型的對象,只要建立Thread類型的對象,就可以便捷地啓動線程、執行線程體。程序員首先必須掌握建立線程的經常使用方法。
參考答案:Java語言中常用兩種方法建立線程。①建立Thread類的子類,在子類中覆蓋Thread類的run方法,實現線程的運行體,只要建立該子類對象就是線程對象。②建立Runable接口的實現類,在實現類中覆蓋接口中的run方法,實現線程的運行體。使用Thread(Runable)構造方法能夠建立線程對象,參數是Runable接口實現類的實例。
解析:泛型是JDK5中增長的特性,API中有大量的泛型接口、泛型類及泛型方法等。程序員須要瞭解泛型的做用,尤爲在使用集合框架時,每每須要使用到泛型。
參考答案:泛型的本質就是參數化類型,也就是說把數據類型指定爲一個參數。在須要聲明數據類型的地方,就能夠不指定具體的某個類型,而是使用這個參數。這樣一來,就可以在具體使用時再指定具體類型,實現了參數的「任意化」。泛型的好處是在編譯的時候可以檢查類型安全,而且全部的強制轉換都是自動和隱式的,提升代碼的重用率。
解析:自動裝箱/拆箱指的是八個包裝器類與八個基本類型的轉換問題。然而。這個特徵卻須要謹慎使用,由於雖然表面上看起來很是方便,而實質上依然須要建立對象、進行轉換等操做,使用不恰當會下降性能。
參考答案:自動裝箱指的是能夠直接將基本數據類型轉換爲包裝器類型,自動拆箱指的是能夠直接將包裝器類型轉換爲基本數據類型,以下代碼所示:
int m=100; Integer im=m; int n=im;
上訴代碼中,直接將m賦值給包裝器對象im,這就是自動裝箱,而後直接將im賦值給基本數據類型n,這就是自動拆箱。雖然表面上看代碼簡潔方便,然而本質上裝箱時候依然使用new建立了對象,而拆箱時也依然調用了方法進行運算。所以,不要在沒有必要的時候,頻繁使用裝箱拆箱,會下降性能。