【面试虐菜】—— JAVA面试题(3)
1 throws與throw的區別
解析:throws和throw是異常處理時兩個常見的關鍵字,初級程序員常常容易正確理解throw和throws的作用和區別,說明已經能比較深入理解異常處理。Throw用來拋出異常,如果執行了throw語句,程序將發生異常,進入到異常處理機制。Throws用來聲明異常,說明這個方法可能會發生某些類型的異常,那么編譯器將強制在調用這個方法的時候處理異常。API中的很多方法都使用了throws聲明了異常,所以使用這些方法時編譯器會提示需要處理異常。??
參考答案:throw用來在方法體內拋出異常,而throws用來在方法聲明處聲明異常。這兩個關鍵字有著一定的聯系。如果一個方法中使用了throw關鍵字拋出了異常,那么要么立即用try/catch語句進行捕獲,要么就是用throws進行聲明,否則將出現編譯錯誤。然而,?
并不是只有使用了throw關鍵字之后才能使用throws關鍵字,語法上來說,任何一個方法都可以直接使用throws關鍵字,抽象方法也可以使用。?
2 collection接口與map接口
解析:Collection和Map是Java集合框架中兩個基本集合類型,要區別不同的集合首先要從Collection和Map開始。?
參考答案:Collection接口是傳統的集合接口,可以把單個對象存儲進來。而Map接口是映射接口,存儲的是鍵值對。?
?
3 list與set的區別
解析:List和Set是Collection接口的兩個子接口,也是使用最多的兩種集合類型。程序員應該熟悉這兩個接口的基本特征,能夠更準確地選擇正確的集合類型。?
參考答案:List實現了列表類型的集合,List中的元素是有序(ordered)的,每個元素根據放入集合的順序而對應一個索引值,?可以根據這個索引值返回集合原宿。而Set實現了不重復元素集合,即Set中的元素不能夠重復,重復的元素將無法添加到集合中。
?
4 list都有哪些實現
解析:List是用的較多的集合類型,List是一個接口,具體使用List集合類型時,需要使用時實現類。List接口的每個實現類也都實現了不同的數據結構,各自具有不同的特征,其中最常用的是List實現類。
?參考答案:List接口中有以下幾個常用實現
1?ArrayList:實現了動態數組的特征。
2?LinkedList:?實現了鏈表的數據結構,LinkedList也可以用作棧或者隊列。
3?Vector:向量。
4?ArrayList??
Vector類的功能?ArrayList都可以實現,區別在于Vector是現行同步的。
?
5 如何創建線程對象
解析:Java?語言能夠支持多線程編程,將線程封裝成Thread類型的對象,只要創建Thread類型的對象,就能夠便捷地啟動線程、執行線程體。程序員首先必須掌握創建線程的常用方法。?
參考答案:Java語言中經常使用兩種方法創建線程。①創建Thread類的子類,在子類中覆蓋Thread類的run方法,實現線程的運行體,只要創建該子類對象就是線程對象。②創建Runable接口的實現類,在實現類中覆蓋接口中的run方法,實現線程的運行體。使用Thread(Runable)構造方法可以創建線程對象,參數是Runable接口實現類的實例。
?
6 ?什么是泛型,作用?
解析:泛型是JDK5中增加的特性,API中有大量的泛型接口、泛型類及泛型方法等。程序員需要了解泛型的作用,尤其在使用集合框架時,往往需要使用到泛型。?
參考答案:泛型的本質就是參數化類型,也就是說把數據類型指定為一個參數。在需要聲明數據類型的地方,就可以不指定具體的某個類型,而是使用這個參數。這樣一來,就能夠在具體使用時再指定具體類型,實現了參數的“任意化”。泛型的好處是在編譯的時候能夠檢查類型安全,并且所有的強制轉換都是自動和隱式的,提高代碼的重用率。
?
7 自動裝箱?拆箱?
解析:自動裝箱/拆箱指的是八個包裝器類與八個基本類型的轉換問題。然而。這個特征卻需要謹慎使用,因為雖然表面上看起來非常方便,而實質上依然需要創建對象、進行轉換等操作,使用不恰當會降低性能。?
參考答案:自動裝箱指的是可以直接將基本數據類型轉換為包裝器類型,自動拆箱指的是可以直接將包裝器類型轉換為基本數據類型,如下代碼所示:
int m=100; Integer im=m; int n=im;?
上訴代碼中,直接將m賦值給包裝器對象im,這就是自動裝箱,然后直接將im賦值給基本數據類型n,這就是自動拆箱。雖然表面上看代碼簡潔方便,然而本質上裝箱時候依然使用new創建了對象,而拆箱時也依然調用了方法進行運算。因此,不要在沒有必要的時候,頻繁使用裝箱拆箱,會降低性能。
轉載于:https://www.cnblogs.com/xing901022/p/3979006.html
總結
以上是生活随笔為你收集整理的【面试虐菜】—— JAVA面试题(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GuessFist
- 下一篇: 如何使用来电盒--宇然电脑公司管理软件