




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java程序員筆試題1.談?wù)刦inal,finally,finalize的區(qū)別。final 一修飾符(關(guān)鍵字)如果一個類被聲明為 final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract 的,又被聲明為 final 的。將變量或方法聲明為巾 nal,可以保證它們在使用中不被改變。被聲明為 final 的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為 final 的方法也同樣只能使用,不能重載。2.AnonymousInnerClass(匿名內(nèi)部類)是否可以extends濰承) 其它類, 是否可以implements(實現(xiàn))
2、interface(接口)?3.StaticNestedClass和InnerClass的不同,說得越多越好(面試題有的很籠統(tǒng))。finally再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進入 finally 塊(如果有的話)finalize 一方法名。Java 技術(shù)允許使用 finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize()方法以
3、整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。4.&和&的區(qū)別。&是兩個數(shù)相與,是運算符&是連接兩個條件表達式的,兩個條件表達式都為真時,整個才為真5.HashMap和Hashtable的區(qū)別。1 HashMap 不是線程安全的hastmap 是一個接口是 map 接口的子接口,是將鍵映射到值的對象,其中鍵和值都是對象,并且不能包含重復(fù)鍵,但可以包含重復(fù)值。HashMap 允許 nullkey 和 nullvalue,而 hashtable 不允許。2 HashTable 是線程安全的一個 Collection。HashMap 是 Has
4、htable 的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了 Map 接口,主要區(qū)別在于HashMap 允許空(null)鍵值(key),由于非線程安全,效率上可能高于 Hashtable。HashMap 允許將 null 作為一個 entry 的 key 或者 value,而 Hashtable 不允許。HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。因為 contains方法容易讓人引起誤解。Hashtable 繼承自 Dictionary 類,而 HashMap 是 Java1.2 引進的 Mapin
5、terface 的一個實現(xiàn)。最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多個線程訪問 Hashtable時,不需要自己為它的方法實現(xiàn)同步,而 HashMap 就必須為之提供外同步。Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一樣,所以性能不會有很大的差異。6 .Collection和Collections的區(qū)別。Collection 和 Collections 的區(qū)別。Collections 是個 java.util 下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。Collection 是個 java.u
6、til 下的接口,它是各種集合結(jié)構(gòu)的父接口。List,Set,Map 是否繼承自 Collection 接口?List,Set 是 Map 不是ArrayList 和 Vector 的區(qū)別。一 .同步性:Vector 是線程安全的,也就是說是同步的,而 ArrayList 是線程序不安全的,不是同步的二 .數(shù)據(jù)增長:當需要增長時,Vector 默認增長為原來一培,而 ArrayList 卻是原來的一半7.什么時候用assertassertion(斷言)在軟件開發(fā)中是一種常用的調(diào)試方式,很多開發(fā)語言中都支持這種機制。在實現(xiàn)中,assertion 就是在程序中的一條語句,它對一個 boolean
7、表達式進行檢查,一個正確程序必須保證這個 boolean 表達式的值為 true;如果該值為false,說明程序已經(jīng)處于不正確的狀態(tài)下, 系統(tǒng)將給出警告或退出。 一般來說, assertion用于保證程序最基本、關(guān)鍵的正確性。assertion 檢查通常在開發(fā)和測試時開啟。為了提高性能,在軟件發(fā)布后,assertion 檢查通常是關(guān)閉的。8 .GC是什么?為什么要有GC?9.Strings=newString(xyz);創(chuàng)建了幾個StringObject?10.Math.round(11.5)等於多少?Math.round(-11.5)等於多少?11.shorts1=1;s1=s1+1;有什么
8、錯?shorts1=1;s1+=1;有什么錯?是報錯為可能損失精度嗎?呵呵, 這個問題的原因就是所有聲明為 short 的類型變量在進行運算時都會自動轉(zhuǎn)為 int 類型的變量,這樣 s1+1 就不是 short 型的,而變成 int 類型的,這時再賦給還是 short 類型的 s1 就會報精度損失錯誤了,這樣改下就不會報錯了s1=(short)(s1+1),試試看!12.sleep()和wait()有什么區(qū)別?sleep 是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間,給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復(fù)。調(diào)用 sleep 不會釋放對象鎖。wait是 Obj
9、ect 類的方法,對此對象調(diào)用 wait 方法導(dǎo)致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發(fā)出 notify 方法(或 notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態(tài)。13.數(shù)組有沒有l(wèi)ength()這個方法?String有沒有l(wèi)ength()這個方法?1、數(shù)組有沒有 length()這個方法?String 有沒有 length()這個方法?數(shù)組沒有 length()這個方法,有 length 的屬性。String 有有 length()這個方法。2、是否可以繼承 String 類?String 類是 final 類故不可以繼承。3、final,fi
10、nally,finalize 的區(qū)別。final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally 是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize 是 Object 類的一個方法, 在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。14.Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?overload 一般翻譯為重載,表示多個函數(shù)共用同一個函數(shù)名,為了保證調(diào)用這些同名函數(shù)時能正確區(qū)分究竟應(yīng)該調(diào)用的是其中的哪一個,重載的各個函數(shù)的參數(shù)表(不考慮形
11、參名)必須彼此不同,通常簡略地說成不同參數(shù)表”。它對返回值的類型沒有任何要求,所以你可以隨意為每一個重載的函數(shù)設(shè)置返回類型,相同也行,不同也行。override 一般翻譯為覆蓋, 表示子類對從父類繼承來的虛函數(shù)重新定義, 它要求參數(shù)表必須跟父類中被覆蓋的那個函數(shù)的參數(shù)表完全相同,返回值類型原則上也要求相同,但如果返回類型是父類的指針或者父類的引用,覆蓋時返回類型允許是子類的指針或者子類的引用。15.Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用=還是equals()?它們有何區(qū)別?1、什么是 Set?(what)Set 是 Collection 容器的一個子接口,它不允許出現(xiàn)
12、重復(fù)元素,當然也只允許有一個 null 對象。2、如何來區(qū)分重復(fù)與否呢?(how)“用 iterator()方法來區(qū)分重復(fù)與否”,這是在網(wǎng)上流傳的答案,個人認為這是個錯誤的答案。JPI 中寫的很明白:“set 不包含滿足e1.equals(e2)的元素對e1和e2”,由此可見回答使用 equals()區(qū)分更合適。3、為什么用 equals()而不用=來區(qū)分?(why)應(yīng)該從它倆的區(qū)別談起,=是用來判斷兩者是否是同一對象(同一事物),而 equals 是用來判斷是否引用同一個對象。再看一下 Set 里面存的是對象,還是對象白引用。根據(jù) java 的存儲機制可知,set 里面存放的是對象的引用,所
13、以當兩個元素只要滿足了 equals()時就已經(jīng)指向同一個對象,也就出現(xiàn)了重復(fù)元素。所以應(yīng)該用 equals()來判斷。16.給我一個你最常見到的runtimeexception。ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,Empt
14、yStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,Ra
15、sterFORMatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException17 .error和exception有什么區(qū)別Error(錯誤)表示系統(tǒng)級的錯誤和程序不必處理的異常,是 java 運行環(huán)境中的內(nèi)部錯誤或者硬件問題,比如,內(nèi)存資源不足等,對于這種錯誤,程序基本無能為力,除了退出運行外別無選擇。Exception(違例)表示需要捕捉或者需要程序進行處理的異常,它處理的是因為程序設(shè)計的瑕疵而
16、引起的問題或者在外的輸入等引起的一般性問題,是程序必須處理的。18 .List,Set,Map是否繼承自Collection接口19 .abstractclass和interface有什么區(qū)別?1 .相同點A.兩者都是抽象類,都不能實例化。8.interface 實現(xiàn)類及 abstrctclass 的子類都必須要實現(xiàn)已經(jīng)聲明的抽象方法。2 .不同點A.interface 需要實現(xiàn),要用 implements,而 abstractclass 需要繼承,要用 extends。B.一個類可以實現(xiàn)多個 interface,但一個類只能繼承一個 abstractclass。C. interface 強調(diào)
17、特定功能的實現(xiàn),而 abstractclass 強調(diào)所屬關(guān)系。D.盡管 interface 實現(xiàn)類及 abstrctclass 的子類都必須要實現(xiàn)相應(yīng)的抽象方法,但實現(xiàn)的形式不同。interface 中的每一個方法都是抽象方法,都只是聲明的(declaration,沒有方法體),實現(xiàn)類必須要實現(xiàn)。而 abstractclass 的子類可以有選擇地實現(xiàn)。這個選擇有兩點含義:一是 Abastractclass 中并非所有的方法都是抽象的,只有那些冠有 abstract 的方法才是抽象的,子類必須實現(xiàn)。那些沒有 abstract 的方法,在 Abstrctclass 中必須定義方法體。二是 abst
18、ractclass 的子類在繼承它時,對非抽象方法既可以直接繼承,也可以覆蓋;而對抽象方法,可以選擇實現(xiàn),也可以通過再次聲明其方法為抽象的方式,無需實現(xiàn),留給其子類來實現(xiàn),但此類必須也聲明為抽象類。既是抽象類,當然也不能實例化。E.abstractclass 是 interface 與 Class 的中介。interface 是完全抽象的,只能聲明方法,而且只能聲明 pulic 的方法,不能聲明 private 及 protected 的方法,不能定義方法體,也不能聲明實例變量。然而,interface 去口可以聲明常量變量,并且在 JDK 中不難找出這種例子。但將常量變量放在 interfa
19、ce 中違背了其作為接口的作用而存在的宗旨,也混淆了 interface 與類的不同價值。如果的確需要,可以將其放在相應(yīng)的 abstractclass 或 Class 中。abstractclass 在 interface 及 Class 中起到了承上啟下的作用。一方面,abstractclass 是抽象的,可以聲明抽象方法,以規(guī)范子類必須實現(xiàn)的功能;另一方面,它又可以定義缺省的方法體,供子類直接使用或覆蓋。另外,它還可以定義自己的實例變量,以供子類通過繼承來使用。3 .interface 的應(yīng)用場合A.類與類之前需要特定的接口進行協(xié)調(diào),而不在乎其如何實現(xiàn)。B.作為能夠?qū)崿F(xiàn)特定功能的標識存在,
20、也可以是什么接口方法都沒有的純粹標識。C.需要將一組類視為單一的類,而調(diào)用者只通過接口來與這組類發(fā)生聯(lián)系。D.需要實現(xiàn)特定的多項功能,而這些功能之間可能完全沒有任何聯(lián)系。4 .abstractclass 的應(yīng)用場合一句話,在既需要統(tǒng)一的接口,又需要實例變量或缺省的方法的情況下,就可以使用它。最常見的有:A.定義了一組接口,但又不想強迫每個實現(xiàn)類都必須實現(xiàn)所有的接口??梢杂?abstractclass 定義一組方法體,甚至可以是空方法體,然后由子類選擇自己所感興趣的方法來覆蓋。B.某些場合下,只靠純粹的接口不能滿足類與類之間的協(xié)調(diào),還必需類中表示狀態(tài)的變量來區(qū)別不同的關(guān)系。abstract 的中介作用可以很好地滿足這一點。C.規(guī)范了一組相互協(xié)調(diào)的方法,其中一些方法是共同的,與狀態(tài)無關(guān)的,可以共享的,無需子類分別實現(xiàn);而另一些方法卻需要各個子類根據(jù)自己特定的狀態(tài)來實現(xiàn)特定的功能20.接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concreteclass)?接口可以繼承接口。抽象類可以實現(xiàn)(implements)(i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股權(quán)激勵協(xié)議書合同
- 自制貨品售賣合同協(xié)議
- 美容美發(fā)合同協(xié)議書范本
- 綠化保養(yǎng)協(xié)議合同協(xié)議
- 育嬰保姆聘用合同協(xié)議
- 統(tǒng)計輔助服務(wù)合同協(xié)議
- 純投資協(xié)議合同協(xié)議
- 精密儀器招商合同協(xié)議
- 美容產(chǎn)品合作合同協(xié)議
- 秧苗管理合同協(xié)議書模板
- 幽門螺桿菌科普課件
- ISO TR 15608-2017-中英文版完整
- 手術(shù)室常用藥物
- 數(shù)字貿(mào)易學(xué) 課件 第18、19章 全球數(shù)字經(jīng)濟治理概述、包容性發(fā)展與全球數(shù)字鴻溝
- 學(xué)校護蕾行動工作方案及計劃書
- DLT 866-2015 電流互感器和電壓互感器選擇及計算規(guī)程解讀
- 房屋抵押個人借款標準合同
- 云南省昆明市2022-2023學(xué)年二年級下學(xué)期語文期中試卷(含答案)
- 國家職業(yè)技術(shù)技能標準 4-07-02-05 商務(wù)數(shù)據(jù)分析師S 2024年版
- 口腔預(yù)防保健課件 英文
- 10、工地試驗室培訓(xùn)
評論
0/150
提交評論