中軟國際的Java程序員筆試的題目_第1頁
中軟國際的Java程序員筆試的題目_第2頁
中軟國際的Java程序員筆試的題目_第3頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、中軟國際Java程序員筆試題1、談談 final , finally , finalize的區(qū)別。final :修飾符關鍵字如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。finally :在異常處理時提供 finally 塊來執(zhí)行任何去除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后

2、控制就會進入finally塊如果有的話。finalize :方法名。Java技術允許使用finalize。方法在垃圾收集器將對象從存中去除出去之前做必 要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize。方法以整理系統資源或者執(zhí)行其他清理工作。 finalize。 方法是在垃圾收集器刪除對象之前對這個對象調用的。2、 Anonymous Inner Class (匿名部類)是否可以extends( 繼承)其它類,是否可以 implements( 實現)interface( 接口)?匿名的

3、部類是沒有名字的部類。不能繼承其它類,但一個部類可以作為一個接口,由另一個部類實現。3、Static Nested Class 和Inner Class 的不同,說得越多越好(面試題有的很籠統)。Static nested class 嵌套類是將部類聲明為 static。普通部類對象隱式地保存了一個引用,指向創(chuàng) 建它的外圍類對象,不能有 static數據和static字段。嵌套類意味著:1要創(chuàng)建嵌套類的對象,并不需 要其外圍類的對象;2不能從嵌套類的對象中訪問非靜態(tài)的外圍類的對象。4、&和&的區(qū)別。&是兩個數相與,是位運算符&是布爾邏輯運算符,連接兩個條件表達式的,兩個條件表達式都為真時,整個

4、才為真5、HashMap 和 Hashtable 的區(qū)別。都屬于Map接口的類,實現了將惟一鍵映射到特定的值上。HashMap 類沒有分類或者排序。它允許一個 null鍵和多個 null值。Hashtable 類似于 HashMap,但是不允許 null鍵和 null值。它也比 HashMap 慢,因為它是同步的,是線程安全的。6、Collection 和 Collections 的區(qū)別。Collections 是個java.util下的類,它包含有各種有關集合操作的靜態(tài)方法。Collection 是個java.util下的接口,它是各種集合結構的父接口。7、List, Set, Map 是否

5、繼承自 Collection 接口?List, Set 是 Map 不是8、ArrayList 和 Vector 的區(qū)別。1同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的2數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半9、什么時候用assert。assertion斷言)在軟件開發(fā)中是一種常用的調試方式,很多開發(fā)語言中都支持這種機制。在實現中, assertion就是在程序中的一條語句,它對一個boolean表達式進展檢查,一個正確程序必須保證這個boolean表達式的值為true ;如果該值為fa

6、lse,說明程序已經處于不正確的狀態(tài)下,系統將給出警告或 退出。一般來說,assertion用于保證程序最根本、關鍵的正確性。assertion檢查通常在開發(fā)和測試時開啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關閉的。10、 GC是什么?為什么要有 GC ?GC是垃圾收集器。Java程序員不用擔心存管理,因為垃圾收集器會自動進展管理。要請求垃圾收集,可以調用下面的方法之一:1. System.gc()2.3. Runtime.getRuntime().gc()11、String s = new String(xyz);創(chuàng)建了幾個 String Object ?兩個對象,一個是

7、“ xyx ,一個是指向“ xyx 的引用對象s12、.Math.round(11.5)等於多少?Math.round(-11.5) 等於多少?Math.round(11.5) 返回long12,Math.round(-11.5) 返回long-11 ;因為返回最接近參數的long。通過加上1/2將該結果舍入為整數,取結果的基數并將其強制轉換為long類型。換句話說,結果等于以下表達式的值:(long)Math.floor(a + 0.5d)13、 short si = 1; si = si + 1 ;有什么錯?short si = 1; si += 1 ;有什么錯?short si = 1

8、; si = si + 1 ;錯, short si = 1 ; si += 1 ;對。對于 short si = 1 ; si = si + 1 ; 由于si+1運算時會自動提升表達式的類型,所以結果是int型,再賦值給short類型si時,編譯器將報告需要強制轉換類型的錯誤。對于short si = 1; si += 1 ;由于+=是java語言規(guī)定的運算符,java編譯器會對它進展特殊處理,因此可以正確編譯。14、sleep() 和 wait() 有什么區(qū)別?sleep是線程類Thread的方法,導致此線程暫停執(zhí)行指定時間,給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復。調

9、用sleep不會釋放對象鎖。wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發(fā)岀notify方法或notifyAll丨后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態(tài)。15、 數組有沒有l(wèi)ength()這個方法?String 有沒有l(wèi)ength()這個方法?數組沒有l(wèi)ength()這個方法,有l(wèi)ength 的屬性。String有有l(wèi)ength()這個方法。16、是否可以繼承 String 類?String類是final類故不可以繼承。17、 Overload 和Override的區(qū)別。Overloaded的方法是否可以改

10、變返回值的類型?overload 一般翻譯為重載,表示多個函數共用同一個函數名,為了保證調用這些同名函數時能正確區(qū)分終究應該調用的是其中的哪一個,重載的各個函數的參數表不考慮形參名必須彼此不同,通常簡略 地說成“不同參數表。它對返回值的類型沒有任何要求,所以你可以隨意為每一個重載的函數設置返回 類型,一樣也行,不同也行。override 一般翻譯為覆蓋,表示子類對從父類繼承來的虛函數重新定義,它要求參數表必須跟父類中 被覆蓋的那個函數的參數表完全一樣,返回值類型原如此上也要求一樣,但如果返回類型是父類的指針或 者父類的引用,覆蓋時返回類型允許是子類的指針或者子類的引用。18、 Set里的元素是

11、不能重復的,那么用什么方法來區(qū)分重復與否呢?是用=還是equals() ?它 們有何區(qū)別?Set是Collection容器的一個子接口,它不允許出現重復元素,當然也只允許有一個null對象。equals() 區(qū)分更適宜。為什么用equals()而不用=來區(qū)分?應該從它倆的區(qū)別談起,=是用來判斷兩者是否是同一對象同一事物,而 equals是用來判斷是否引用同一個對象。再看一下Set里面存的是對象,還是對象的引用。根據java的存儲機制可知,set里面存放的是對象的引用,所以當兩個元素只要滿足了equals()時就已經指向同一個對象,也就出現了重復元素。所以應該用equals()來判斷。19、給我

12、一個你最常見到的runtime exception 。ArithmeticException, ArrayStoreException, BufferOverflowException,BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException,CMMException, ConcurrentModificationException, DOMException, EmptyStackException,lllegalArgumentException, lllegalMonito

13、rStateException, lllegalPathStateException,IllegalStateException,ImagingOpException, IndexOutOfBoundsException, MissingResourceException,NegativeArraySizeException, NoSuchElementException, NullPointerException,ProfileDataException, ProviderException, RasterFORMatException, SecurityException,SystemEx

14、ception, UndeclaredThrowableException, UnmodifiableSetException,UnsupportedOperationException20、error 和 exception 有什么區(qū)另U?Error(錯誤)表示系統級的錯誤和程序不必處理的異常,是java運行環(huán)境中的部錯誤或者硬件問題,比如,存資源不足等,對于這種錯誤,程序根本無能為力,除了退岀運行外別無選擇。Exception(違例)表示需要捕捉或者需要程序進展處理的異常,它處理的是因為程序設計的瑕疵而引起的問題或者在外的輸入等引起的一般性問題,是程序必須處理的。21、abstract c

15、lass 和 interface 有什么區(qū)另U?1 一樣點A. 兩者都是抽象類,都不能實例化。B. interface 實現類與abstrct class 的子類都必須要實現已經聲明的抽象方法。2不同點A. interface 需要實現,要用 implements ,而 abstract class 需要繼承,要用 extends。B. 一個類可以實現多個 interface,但一個類只能繼承一個abstract class 。C. interface 強調特定功能的實現,而abstract class 強調所屬關系。D. 盡管interface實現類與abstrct class的子類都必須要

16、實現相應的抽象方法,但實現的形式不同。interface中的每一個方法都是抽象方法,都只是聲明的(declaration ,沒有方法體),實現類必須要實現。而abstract class 的子類可以有選擇地實現。這個選擇有兩點含義:一是Abastract class中并非所有的方法都是抽象的,只有那些冠有abstract的方法才是抽象的,子類必須實現。那些沒有 abstract的方法,在 Abstrct class中必須定義方法體。二是abstract class的子類在繼承它時,對非抽象方法既可以直接繼承,也可以覆蓋;而對抽象方法, 可以選擇實現,也可以通過再次聲明其方法為抽象的方式,無需實

17、現,留給其子類來實現,但此類必須也 聲明為抽象類。既是抽象類,當然也不能實例化。E. abstract class 是 interface 與 Class 的中介。interface是完全抽象的,只能聲明方法,而且只能聲明pulic的方法,不能聲明private與protected 的方法,不能定義方法體,也不能聲明實例變量。然而,interface卻可以聲明常量變量,并且在JDK中不難找出這種例子。但將常量變量放在interface中違背了其作為接口的作用而存在的宗旨,也混淆了interface 與類的不同價值。如果確實需要,可以將其放在相應的 abstract class 或Class中。

18、abstract class 在interface 與Class中起到了承上啟下的作用。一方面,abstract class 是抽象的,可以聲明抽象方法,以規(guī)子類必須實現的功能;另一方面,它又可以定義缺省的方法體,供子類直接使用 或覆蓋。另外,它還可以定義自己的實例變量,以供子類通過繼承來使用。3 interface的應用場合A. 類與類之前需要特定的接口進展協調,而不在乎其如何實現。B. 作為能夠實現特定功能的標識存在,也可以是什么接口方法都沒有的純粹標識。C. 需要將一組類視為單一的類,而調用者只通過接口來與這組類發(fā)生聯系。D. 需要實現特定的多項功能,而這些功能之間可能完全沒有任何聯系。

19、4 abstract class 的應用場合一句話,在既需要統一的接口,又需要實例變量或缺省的方法的情況下,就可以使用它。最常見的有:A.定義了一組接口,但又不想強迫每個實現類都必須實現所有的接口??梢杂胊bstract class 定義一組方法體,甚至可以是空方法體,然后由子類選擇自己所感興趣的方法來覆蓋。B. 某些場合下,只靠純粹的接口不能滿足類與類之間的協調,還必需類中表示狀態(tài)的變量來區(qū)別不同 的關系。abstract的中介作用可以很好地滿足這一點。C. 規(guī)了一組相互協調的方法,其中一些方法是共同的,與狀態(tài)無關的,可以共享的,無需子類分別實 現;而另一些方法卻需要各個子類根據自己特定的狀態(tài)來實現特定的功能22、 接口是否可繼承接口?抽象類是否可實現(implements) 接口?抽象類是否可繼承實體類(concrete class) ?接口可以繼承接口。抽象類可以實現 (implements)接口。抽象類是否可繼承實體類,但前提是實體類 必須有明確的構造函數。23、構造器 Constructor 是否可被 override ?構造器Constructor不能被繼承,因此不能重寫Overriding ,但可以被重載Overloading 。24、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論