歡迎您來到中華陶瓷網 [簡體版] [繁體版] [網通站]  會員中心  RSS定閱  留言  關于我們   客服中心
中華陶瓷網
 網站首頁 行業(yè)專題 人物專訪 陶瓷收藏 電子雜志 陶瓷裝飾 經營管理 會員服務 廣告服務
 直通產區(qū) 福建德化 景德鎮(zhèn)市 佛山潮州 山東淄博 湖南醴陵 河北唐山 本網動態(tài) 網站建設
首頁  資訊  企業(yè)  產品  供應  求購  展會  招聘  搜索  文化  商城  名家  技術  圖庫  百科  營銷管理  陶瓷之路
首頁  | 經營管理 | 營銷專題 | 人際溝通 | 創(chuàng)業(yè)天地 | 網商 | 職場生涯
信息內容
 
 您的位置: 首頁>營銷管理>>求職培訓>>|
程序員Java面試的陷阱

發(fā)布:2010-1-11 15:21:46  來源: 8020人才網 [字體: ]

 找工作要面試,有面試就有對付面試的辦法。以下一些題目來自我和我朋友痛苦的面試經歷,提這些問題的公司包括IBM, E*Trade, Siebel,Motorola, SUN,以及其它大小公司。 

  面試是沒什么道理可講的,它的題目有的不合情理、脫離實際。有在紙上寫的,有當面考你的,也有在電話里問的,給你IDE的估計很少(否則你趕快去買彩票,說不定中)。所以如果你看完此文后,請不要抱怨說這些問題都能用IDE來解決。你必須在任何情況下準確回答這些問題,在面試中如果出現(xiàn)一兩題回答不準確很有可能你就被拒之門外了。

  當然這些都是Java的基本題,那些面試的人大多數(shù)不會問你Hibernate有多先進,Eclipse的三個組成部分,或command design pattern,他們都是老一輩了,最喜歡問的就是基礎知識。別小看了這些基礎,我朋友水平一流,結果就栽在一到基礎知識的問題下,和高薪無緣。

  好了廢話少說,開始正題。

  第一,談談final, finally, finalize的區(qū)別。

  最常被問到。

  第二,Anonymous Inner Class (匿名內部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?

  第三,Static Nested Class和Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。

  第四,&和&&的區(qū)別。

  這個問得很少。

  第五,HashMap和Hashtable的區(qū)別。

  常問。

  第六,Collection和Collections的區(qū)別。

  你千萬別說一個是單數(shù)一個是復數(shù)。

  第七,什么時候用assert。

  API級的技術人員有可能會問這個。

  第八,GC是什么?為什么要有GC?

  基礎。

  第九,String s = new String(xyz);創(chuàng)建了幾個String Object?

  第十,(11.5)等於多少? (-11.5)等於多少?

  第十一,short s1 = 1; s1 = s1 1;有什么錯? short s1 = 1; s1 = 1;有什么錯?

  面試題都是很變態(tài)的,要做好受虐的準備。

  第十二,sleep()和wait()有什么區(qū)別?

  搞線程的最愛。

  第十三,Java有沒有goto?

  第十三的問題,如果哪個面試的問到這個問題,我勸你還是別進這家公司。

  第十四,數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法?

  第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?

  常問。

  第十六,Set里的元素是不能重復的,那么用什么方法來區(qū)分重復與否呢?是用==還是equals()?它們有何區(qū)別?

  第十七,給我一個你最常見到的runtime exception。

  如果你這個答不出來,面試的人會認為你沒有實際編程經驗。

  第十八,error和exception有什么區(qū)別?

  第十九,List, Set, Map是否繼承自Collection接口?

  第二十,abstract class和interface有什么區(qū)別?

  常問。

  第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?

  第二十二,接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concrete class)?

  第二十三,啟動一個線程是用run()還是start()?

  第二十四,構造器Constructor是否可被override?

  第二十五,是否可以繼承String類?

  第二十六,當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法?

  第二十七,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?

  第二十八,編程題:用最有效率的方法算出2乘以8等於幾?

  有C背景的程序員特別喜歡問這種問題。

  第二十九,兩個對象值相同((y) == true),但卻可有不同的hash code,這句話對不對?

  第三十,當一個對象被當作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?

  第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

  第三十二,編程題:寫一個Singleton出來。

  下面是答案

  第一,談談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()方法是在垃圾收集器刪除對象之前對這個對象調用的。

  第二,Anonymous Inner Class (匿名內部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?

  匿名的內部類是沒有名字的內部類。不能extends(繼承)其它類,但一個內部類可以作為一個接口,由另一個內部類實現(xiàn)。

  第三,Static Nested Class和Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。

  Nested Class (一般是C的說法),Inner Class (一般是JAVA的說法)。Java內部類與C嵌套類最大的不同就在于是否有指向外部的引用上

  。具體可見// />  注:靜態(tài)內部類(Inner Class)意味著1創(chuàng)建一個static內部類的對象,不需要一個外部類對象,2不能從一個static內部類的一個對象訪問一個外部類對象

  第四,&和&&的區(qū)別。

  &是位運算符。&&是布爾邏輯運算符。

  第五,HashMap和Hashtable的區(qū)別。

  都屬于Map接口的類,實現(xiàn)了將惟一鍵映射到特定的值上。

  HashMap類沒有分類或者排序。它允許一個null鍵和多個null值。

  Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因為它是同步的。

  第六,Collection和Collections的區(qū)別。

  Collections是個下的類,它包含有各種有關集合操作的靜態(tài)方法。

  Collection是個下的接口,它是各種集合結構的父接口。

  第七,什么時候用assert。

  斷言是一個包含布爾表達式的語句,在執(zhí)行這個語句時假定該表達式為true。如果表達式計算為false,那么系統(tǒng)會報告一個

  Assertionerror。它用于調試目的:

  assert(a >0); // throws an Assertionerror if a <= 0

  斷言可以有兩種形式:

  assert Expression1;

  assert Expression1: Expression2 ;

  Expression1應該總是產生一個布爾值。

  Expression2可以是得出一個值的任意表達式。這個值用于生成顯示更多調試信息的String消息。

  斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用source 1.4標記:

  javac -source 1.4要在運行時啟用斷言,可使用-nableassertions或者-ea標記。

  要在運行時選擇禁用斷言,可使用-da或者-disableassertions標記。

  要系統(tǒng)類中啟用斷言,可使用-esa或者-dsa標記。還可以在包的基礎上啟用或者禁用斷言。

  可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方法的參數(shù)。不過,斷言不應該用于驗證傳遞給公有方法的參數(shù),因為不管是否啟用了斷言,公有方法都必須檢查其參數(shù)。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應該以任何方式改變程序的狀態(tài)。

 

上一頁 [1] 下一頁
共有  條網友評論 【發(fā)表評論
同樂
包郵特價:360
荷葉瓶
特價:499
輝煌騰達
特價:488
幽夢
包郵特價:1299
陸羽品茶
包郵特價:888
凌云騅
特價:488
自在春風
特價:599
歡天
特價:999
竹之語
包郵特價:1999
和和美美 甜甜蜜蜜
包郵特價:699
煙雨江南
包郵特價:2999
上善若水
包郵特價:2660
 ·本類最新 更多...

信息搜索
本類熱點  
營銷專題  
創(chuàng)業(yè)天地  
關于我們  本站新聞  產品服務  幫助中心  版權聲明  網站導航  友情鏈接  RSS定閱  新聞調用  聯(lián)系我們  留言
版權所有 (C) 2006-2014 中華陶瓷網 Ctaoci.com 電子郵件:wxchina#qq.com
閩ICP備10020107號-1


掃一掃
關注官方微信