2017年計算機軟考:java程序員面試10道題
39 2017-04-27
1、HashMap和Hashtable的區(qū)別。
都屬于Map接口的類,實現(xiàn)了將惟一鍵映射到特定的值上。HashMap類沒有分類或者排序。它允許一個null鍵和多個null值。Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因為它是同步的,是線程安全的。
方法/步驟
2、sleep()和wait()有什么區(qū)別?
sleep是線程類(Thread)的方法,導致此線程暫停執(zhí)行指定時間,給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復。調用sleep不會釋放對象鎖。wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態(tài)。
3、Collection和Collections的區(qū)別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態(tài)方法。
Collection是個java.util下的接口,它是各種集合結構的父接口。
4、什么時候用assert.
assertion(斷言)在軟件開發(fā)中是一種常用的調試方式,很多開發(fā)語言中都支持這種機制。在實現(xiàn)中,assertion就是在程序中的一條語句,它對一個boolean表達式進行檢查,一個正確程序必須保證這個boolean表達式的值為true;如果該值為false,說明程序已經(jīng)處于不正確的狀態(tài)下,系統(tǒng)將給出警告或退出。一般來說,assertion用于保證程序最基本、關鍵的正確性。assertion檢查通常在開發(fā)和測試時開啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關閉的。
5、&和&&的區(qū)別
&是兩個數(shù)相與,是位運算符,&&是布爾邏輯運算符,連接兩個條件表達式的,兩個條件表達式都為真時,整個才為真
6、談談final,finally,finalize的區(qū)別
final:修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
finally:在異常處理時提供finally塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的catch子句就會執(zhí)行,然后控制就會進入finally塊(如果有的話)。
finalize:方法名。Java技術允許使用finalize()方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調用的。
7、AnonymousInnerClass(匿名內部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?
匿名的內部類是沒有名字的內部類。不能繼承其它類,但一個內部類可以作為一個接口,由另一個內部類實現(xiàn)。
8、Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;因為返回最接近參數(shù)的long.通過加上1/2將該結果舍入為整數(shù),取結果的基數(shù)并將其強制轉換為long類型。換句話說,結果等于以下表達式的值:(long)Math.floor(a+0.5d)
9、StaticNestedClass和InnerClass的不同,說得越多越好(面試題有的很籠統(tǒng))
Staticnestedclass(嵌套類)是將內部類聲明為static.普通內部類對象隱式地保存了一個引用,指向創(chuàng)建它的外圍類對象,不能有static數(shù)據(jù)和static字段。嵌套類意味著:1>要創(chuàng)建嵌套類的對象,并不需要其外圍類的對象;2>不能從嵌套類的對象中訪問非靜態(tài)的外圍類的對象。
10、ArrayList和Vector的區(qū)別
1>同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的2>數(shù)據(jù)增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半。
掃一掃
獲取更多福利
獵學網(wǎng)企業(yè)微信
獵學網(wǎng)訂閱號
獵學網(wǎng)服務號