Java面試題集
面試筆試2.53W
第一,談談final, finally, finalize的區別。
final 用於宣告屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會呼叫被回收物件的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉檔案等。
第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)?
可以繼承其他類或完成其他介面,在swing程式設計中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
Static Nested Class是被宣告為靜態(static)的內部類,它可以不依賴於外部類例項被例項化。而通常的內部類需要在外部類例項化後才能例項化。
第四,&和&&的區別。
&是位運算子,表示按位與運算,&&是邏輯運算子,表示邏輯與(and).
第五,HashMap和Hashtable的區別。
HashMap是Hashtable的輕量級實現(非執行緒安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非執行緒安全,效率上可能高於Hashtable.
第六,Collection 和 Collections的區別。
Collection是集合類的上級介面,繼承與他的介面主要有Set 和List.
Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜尋、排序、執行緒安全化等操作。
第七,什麼時候用assert。
1.4新增關鍵字(語法),用於測試boolean表示式狀態,可用於除錯程式。
使用方法 assert ,表示如果表示式為真(true),則下面的語句執行,否則丟擲AssertionError。
另外的使用方式assert < boolean表示式>:,表示如果表示式為真,後面的表示式忽略,否則後面表示式的值用於AssertionError的構建引數。
注意編譯時要增加-source 1.4 引數,否則報錯。]執行時要增加 -ea引數,否則assert行被忽略
第八,GC是什麼? 為什麼要有GC?
GC是垃圾收集的意思(Gabage Collection),記憶體處理是程式設計人員容易出現問題的地方,忘記或者錯誤的記憶體回收會導致程式或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測物件是否超過作用域從而達到自動回收記憶體的目的,Java語言沒有提供釋放已分配記憶體的顯示操作方法。
第九,String s = new String("xyz");建立了幾個String Object?
兩個
第十,d(11.5)等於多少? d(-11.5)等於多少?
d(11.5)==12
d(-11.5)==-11
round方法返回與引數最接近的長整數,引數加1/2後求其floor.
第十一,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?
short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,需要強制轉換型別)
short s1 = 1; s1 += 1;(可以正確編譯)
第十二,sleep() 和 wait() 有什麼區別?
sleep是執行緒類(Thread)的方法,導致此執行緒暫停執行指定時間,給執行機會給其他執行緒,但是監控狀態依然保持,到時後會自動恢復。呼叫sleep不會釋放物件鎖。
wait是Object類的方法,對此物件呼叫wait方法導致本執行緒放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件發出notify方法(或notifyAll)後本執行緒才進入物件鎖定池準備獲得物件鎖進入執行狀態。
第十三,Java有沒有goto?
沒有
很十三的問題,如果哪個面試的問到這個問題,我勸你還是別進這家公司。
第十四,陣列有沒有length()這個方法? String有沒有length()這個方法?
陣列沒有length()這個方法,有length的屬性。
String有有length()這個方法。
第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的型別?
方法的重寫Overriding和過載Overloading是Java多型性的不同表現。重寫Overriding是父類與子類之間多型性的一種表現,過載Overloading是一個類中多型性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding)。子類的物件使用這個方法時,將呼叫子類中的定義,對它而言,父類中的定義如同被"遮蔽"了。如果在一個類中定義了多個同名的方法,它們或有不同的引數個數或有不同的引數型別,則稱為方法的過載(Overloading)。Overloaded的方法是可以改變返回值的型別。
第十六,Set裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()? 它們有何區別?
Set裡的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一物件equals()在類中被覆蓋,為的是當兩個分離的物件的內容和型別相配的話,返回真值。
第十七,給我一個你最常見到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
final 用於宣告屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會呼叫被回收物件的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉檔案等。
第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)?
可以繼承其他類或完成其他介面,在swing程式設計中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
Static Nested Class是被宣告為靜態(static)的內部類,它可以不依賴於外部類例項被例項化。而通常的內部類需要在外部類例項化後才能例項化。
第四,&和&&的區別。
&是位運算子,表示按位與運算,&&是邏輯運算子,表示邏輯與(and).
第五,HashMap和Hashtable的區別。
HashMap是Hashtable的輕量級實現(非執行緒安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非執行緒安全,效率上可能高於Hashtable.
第六,Collection 和 Collections的區別。
Collection是集合類的上級介面,繼承與他的介面主要有Set 和List.
Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜尋、排序、執行緒安全化等操作。
第七,什麼時候用assert。
1.4新增關鍵字(語法),用於測試boolean表示式狀態,可用於除錯程式。
使用方法 assert ,表示如果表示式為真(true),則下面的語句執行,否則丟擲AssertionError。
另外的使用方式assert < boolean表示式>:,表示如果表示式為真,後面的表示式忽略,否則後面表示式的值用於AssertionError的構建引數。
注意編譯時要增加-source 1.4 引數,否則報錯。]執行時要增加 -ea引數,否則assert行被忽略
第八,GC是什麼? 為什麼要有GC?
GC是垃圾收集的意思(Gabage Collection),記憶體處理是程式設計人員容易出現問題的地方,忘記或者錯誤的記憶體回收會導致程式或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測物件是否超過作用域從而達到自動回收記憶體的目的,Java語言沒有提供釋放已分配記憶體的顯示操作方法。
第九,String s = new String("xyz");建立了幾個String Object?
兩個
第十,d(11.5)等於多少? d(-11.5)等於多少?
d(11.5)==12
d(-11.5)==-11
round方法返回與引數最接近的長整數,引數加1/2後求其floor.
第十一,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?
short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,需要強制轉換型別)
short s1 = 1; s1 += 1;(可以正確編譯)
第十二,sleep() 和 wait() 有什麼區別?
sleep是執行緒類(Thread)的方法,導致此執行緒暫停執行指定時間,給執行機會給其他執行緒,但是監控狀態依然保持,到時後會自動恢復。呼叫sleep不會釋放物件鎖。
wait是Object類的方法,對此物件呼叫wait方法導致本執行緒放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件發出notify方法(或notifyAll)後本執行緒才進入物件鎖定池準備獲得物件鎖進入執行狀態。
第十三,Java有沒有goto?
沒有
很十三的問題,如果哪個面試的問到這個問題,我勸你還是別進這家公司。
第十四,陣列有沒有length()這個方法? String有沒有length()這個方法?
陣列沒有length()這個方法,有length的屬性。
String有有length()這個方法。
第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的型別?
方法的重寫Overriding和過載Overloading是Java多型性的不同表現。重寫Overriding是父類與子類之間多型性的一種表現,過載Overloading是一個類中多型性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding)。子類的物件使用這個方法時,將呼叫子類中的定義,對它而言,父類中的定義如同被"遮蔽"了。如果在一個類中定義了多個同名的方法,它們或有不同的引數個數或有不同的引數型別,則稱為方法的過載(Overloading)。Overloaded的方法是可以改變返回值的型別。
第十六,Set裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()? 它們有何區別?
Set裡的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一物件equals()在類中被覆蓋,為的是當兩個分離的物件的內容和型別相配的話,返回真值。
第十七,給我一個你最常見到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
-
招商銀行- 招商銀行的筆試
招商銀行-招商銀行的筆試居然遲到了幾十分鐘,佩服工作人員的時間觀念……筆試分為兩部分,兩個半小時,基礎知識類似於公務員題,但添加了專業的內容,注重,還包括主觀題;專業的部分就根據不同情況而定了,我們是營銷類的,一道案例題。一道可選題,關於巨集觀經濟政策的論述。第...
-
應聘網易筆試失敗記
自新傳體育最終泡湯之後,又接到了網易北京公司的面試通知。簡直比大學聯考還BT,大學聯考遲到15分還可以進入考場。中午12點半出發,到達清華科技園才1點,正好有一些清華的07年畢業生正在搞一個藝術展,就在一邊看了一會,1點半了上樓,前臺的GG給了一個來賓胸卡,掛在脖子上。這時候...
-
大唐移動筆試歸來
組織的非常混亂,首先教室沒有安排好,人多位置少,最後臨時換了一個教室,大家緊挨著坐,本來8:45的筆試拖到9:15才開始,筆試的內容在宣講的時候說要考c語言,但是筆試的卷子都是通訊知識,不過比較可取的一點就是不同的職位不同的卷子,目前為止,我參加的筆試內容都...
-
歐司朗筆試因禍得福
歐司朗筆試題目要求一小時搞定,主要包括:英語題目,專業題考什麼是光電效應,LED發光的原因,還有幾道畫圖的。都是電子的基礎題吧,可是我都不會做,唉!誰叫我過去不努力呢!胡亂寫些就過去了。前後不到10分鐘,然後就是問答題,英語回答,英語提問。第一題是中譯英,順便跟自己做下...