




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java程序員筆試題1.談?wù)刦inal,finally,finalize的區(qū)別。final 一修飾符(關(guān)鍵字)如果一個(gè)類被聲明為 final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個(gè)類不能既被聲明為 abstract 的,又被聲明為 final 的。將變量或方法聲明為巾 nal,可以保證它們?cè)谑褂弥胁槐桓淖?。被聲明?final 的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為 final 的方法也同樣只能使用,不能重載。2.AnonymousInnerClass(匿名內(nèi)部類)是否可以extends濰承) 其它類, 是否可以implements(實(shí)現(xiàn))
2、interface(接口)?3.StaticNestedClass和InnerClass的不同,說(shuō)得越多越好(面試題有的很籠統(tǒng))。finally再異常處理時(shí)提供 finally 塊來(lái)執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入 finally 塊(如果有的話)finalize 一方法名。Java 技術(shù)允許使用 finalize()方法在垃圾收集器將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒(méi)有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize()方法以
3、整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的。4.&和&的區(qū)別。&是兩個(gè)數(shù)相與,是運(yùn)算符&是連接兩個(gè)條件表達(dá)式的,兩個(gè)條件表達(dá)式都為真時(shí),整個(gè)才為真5.HashMap和Hashtable的區(qū)別。1 HashMap 不是線程安全的hastmap 是一個(gè)接口是 map 接口的子接口,是將鍵映射到值的對(duì)象,其中鍵和值都是對(duì)象,并且不能包含重復(fù)鍵,但可以包含重復(fù)值。HashMap 允許 nullkey 和 nullvalue,而 hashtable 不允許。2 HashTable 是線程安全的一個(gè) Collection。HashMap 是 Has
4、htable 的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了 Map 接口,主要區(qū)別在于HashMap 允許空(null)鍵值(key),由于非線程安全,效率上可能高于 Hashtable。HashMap 允許將 null 作為一個(gè) entry 的 key 或者 value,而 Hashtable 不允許。HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。因?yàn)?contains方法容易讓人引起誤解。Hashtable 繼承自 Dictionary 類,而 HashMap 是 Java1.2 引進(jìn)的 Mapin
5、terface 的一個(gè)實(shí)現(xiàn)。最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多個(gè)線程訪問(wèn) Hashtable時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而 HashMap 就必須為之提供外同步。Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一樣,所以性能不會(huì)有很大的差異。6 .Collection和Collections的區(qū)別。Collection 和 Collections 的區(qū)別。Collections 是個(gè) java.util 下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。Collection 是個(gè) java.u
6、til 下的接口,它是各種集合結(jié)構(gòu)的父接口。List,Set,Map 是否繼承自 Collection 接口?List,Set 是 Map 不是ArrayList 和 Vector 的區(qū)別。一 .同步性:Vector 是線程安全的,也就是說(shuō)是同步的,而 ArrayList 是線程序不安全的,不是同步的二 .數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector 默認(rèn)增長(zhǎng)為原來(lái)一培,而 ArrayList 卻是原來(lái)的一半7.什么時(shí)候用assertassertion(斷言)在軟件開(kāi)發(fā)中是一種常用的調(diào)試方式,很多開(kāi)發(fā)語(yǔ)言中都支持這種機(jī)制。在實(shí)現(xiàn)中,assertion 就是在程序中的一條語(yǔ)句,它對(duì)一個(gè) boolean
7、表達(dá)式進(jìn)行檢查,一個(gè)正確程序必須保證這個(gè) boolean 表達(dá)式的值為 true;如果該值為false,說(shuō)明程序已經(jīng)處于不正確的狀態(tài)下, 系統(tǒng)將給出警告或退出。 一般來(lái)說(shuō), assertion用于保證程序最基本、關(guān)鍵的正確性。assertion 檢查通常在開(kāi)發(fā)和測(cè)試時(shí)開(kāi)啟。為了提高性能,在軟件發(fā)布后,assertion 檢查通常是關(guān)閉的。8 .GC是什么?為什么要有GC?9.Strings=newString(xyz);創(chuàng)建了幾個(gè)StringObject?10.Math.round(11.5)等於多少?Math.round(-11.5)等於多少?11.shorts1=1;s1=s1+1;有什么
8、錯(cuò)?shorts1=1;s1+=1;有什么錯(cuò)?是報(bào)錯(cuò)為可能損失精度嗎?呵呵, 這個(gè)問(wèn)題的原因就是所有聲明為 short 的類型變量在進(jìn)行運(yùn)算時(shí)都會(huì)自動(dòng)轉(zhuǎn)為 int 類型的變量,這樣 s1+1 就不是 short 型的,而變成 int 類型的,這時(shí)再賦給還是 short 類型的 s1 就會(huì)報(bào)精度損失錯(cuò)誤了,這樣改下就不會(huì)報(bào)錯(cuò)了s1=(short)(s1+1),試試看!12.sleep()和wait()有什么區(qū)別?sleep 是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用 sleep 不會(huì)釋放對(duì)象鎖。wait是 Obj
9、ect 類的方法,對(duì)此對(duì)象調(diào)用 wait 方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出 notify 方法(或 notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。13.數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法?String有沒(méi)有l(wèi)ength()這個(gè)方法?1、數(shù)組有沒(méi)有 length()這個(gè)方法?String 有沒(méi)有 length()這個(gè)方法?數(shù)組沒(méi)有 length()這個(gè)方法,有 length 的屬性。String 有有 length()這個(gè)方法。2、是否可以繼承 String 類?String 類是 final 類故不可以繼承。3、final,fi
10、nally,finalize 的區(qū)別。final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally 是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize 是 Object 類的一個(gè)方法, 在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。14.Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?overload 一般翻譯為重載,表示多個(gè)函數(shù)共用同一個(gè)函數(shù)名,為了保證調(diào)用這些同名函數(shù)時(shí)能正確區(qū)分究竟應(yīng)該調(diào)用的是其中的哪一個(gè),重載的各個(gè)函數(shù)的參數(shù)表(不考慮形
11、參名)必須彼此不同,通常簡(jiǎn)略地說(shuō)成不同參數(shù)表”。它對(duì)返回值的類型沒(méi)有任何要求,所以你可以隨意為每一個(gè)重載的函數(shù)設(shè)置返回類型,相同也行,不同也行。override 一般翻譯為覆蓋, 表示子類對(duì)從父類繼承來(lái)的虛函數(shù)重新定義, 它要求參數(shù)表必須跟父類中被覆蓋的那個(gè)函數(shù)的參數(shù)表完全相同,返回值類型原則上也要求相同,但如果返回類型是父類的指針或者父類的引用,覆蓋時(shí)返回類型允許是子類的指針或者子類的引用。15.Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢?是用=還是equals()?它們有何區(qū)別?1、什么是 Set?(what)Set 是 Collection 容器的一個(gè)子接口,它不允許出現(xiàn)
12、重復(fù)元素,當(dāng)然也只允許有一個(gè) null 對(duì)象。2、如何來(lái)區(qū)分重復(fù)與否呢?(how)“用 iterator()方法來(lái)區(qū)分重復(fù)與否”,這是在網(wǎng)上流傳的答案,個(gè)人認(rèn)為這是個(gè)錯(cuò)誤的答案。JPI 中寫(xiě)的很明白:“set 不包含滿足e1.equals(e2)的元素對(duì)e1和e2”,由此可見(jiàn)回答使用 equals()區(qū)分更合適。3、為什么用 equals()而不用=來(lái)區(qū)分?(why)應(yīng)該從它倆的區(qū)別談起,=是用來(lái)判斷兩者是否是同一對(duì)象(同一事物),而 equals 是用來(lái)判斷是否引用同一個(gè)對(duì)象。再看一下 Set 里面存的是對(duì)象,還是對(duì)象白引用。根據(jù) java 的存儲(chǔ)機(jī)制可知,set 里面存放的是對(duì)象的引用,所
13、以當(dāng)兩個(gè)元素只要滿足了 equals()時(shí)就已經(jīng)指向同一個(gè)對(duì)象,也就出現(xiàn)了重復(fù)元素。所以應(yīng)該用 equals()來(lái)判斷。16.給我一個(gè)你最常見(jiàn)到的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(錯(cuò)誤)表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,是 java 運(yùn)行環(huán)境中的內(nèi)部錯(cuò)誤或者硬件問(wèn)題,比如,內(nèi)存資源不足等,對(duì)于這種錯(cuò)誤,程序基本無(wú)能為力,除了退出運(yùn)行外別無(wú)選擇。Exception(違例)表示需要捕捉或者需要程序進(jìn)行處理的異常,它處理的是因?yàn)槌绦蛟O(shè)計(jì)的瑕疵而
16、引起的問(wèn)題或者在外的輸入等引起的一般性問(wèn)題,是程序必須處理的。18 .List,Set,Map是否繼承自Collection接口19 .abstractclass和interface有什么區(qū)別?1 .相同點(diǎn)A.兩者都是抽象類,都不能實(shí)例化。8.interface 實(shí)現(xiàn)類及 abstrctclass 的子類都必須要實(shí)現(xiàn)已經(jīng)聲明的抽象方法。2 .不同點(diǎn)A.interface 需要實(shí)現(xiàn),要用 implements,而 abstractclass 需要繼承,要用 extends。B.一個(gè)類可以實(shí)現(xiàn)多個(gè) interface,但一個(gè)類只能繼承一個(gè) abstractclass。C. interface 強(qiáng)調(diào)
17、特定功能的實(shí)現(xiàn),而 abstractclass 強(qiáng)調(diào)所屬關(guān)系。D.盡管 interface 實(shí)現(xiàn)類及 abstrctclass 的子類都必須要實(shí)現(xiàn)相應(yīng)的抽象方法,但實(shí)現(xiàn)的形式不同。interface 中的每一個(gè)方法都是抽象方法,都只是聲明的(declaration,沒(méi)有方法體),實(shí)現(xiàn)類必須要實(shí)現(xiàn)。而 abstractclass 的子類可以有選擇地實(shí)現(xiàn)。這個(gè)選擇有兩點(diǎn)含義:一是 Abastractclass 中并非所有的方法都是抽象的,只有那些冠有 abstract 的方法才是抽象的,子類必須實(shí)現(xiàn)。那些沒(méi)有 abstract 的方法,在 Abstrctclass 中必須定義方法體。二是 abst
18、ractclass 的子類在繼承它時(shí),對(duì)非抽象方法既可以直接繼承,也可以覆蓋;而對(duì)抽象方法,可以選擇實(shí)現(xiàn),也可以通過(guò)再次聲明其方法為抽象的方式,無(wú)需實(shí)現(xiàn),留給其子類來(lái)實(shí)現(xiàn),但此類必須也聲明為抽象類。既是抽象類,當(dāng)然也不能實(shí)例化。E.abstractclass 是 interface 與 Class 的中介。interface 是完全抽象的,只能聲明方法,而且只能聲明 pulic 的方法,不能聲明 private 及 protected 的方法,不能定義方法體,也不能聲明實(shí)例變量。然而,interface 去口可以聲明常量變量,并且在 JDK 中不難找出這種例子。但將常量變量放在 interfa
19、ce 中違背了其作為接口的作用而存在的宗旨,也混淆了 interface 與類的不同價(jià)值。如果的確需要,可以將其放在相應(yīng)的 abstractclass 或 Class 中。abstractclass 在 interface 及 Class 中起到了承上啟下的作用。一方面,abstractclass 是抽象的,可以聲明抽象方法,以規(guī)范子類必須實(shí)現(xiàn)的功能;另一方面,它又可以定義缺省的方法體,供子類直接使用或覆蓋。另外,它還可以定義自己的實(shí)例變量,以供子類通過(guò)繼承來(lái)使用。3 .interface 的應(yīng)用場(chǎng)合A.類與類之前需要特定的接口進(jìn)行協(xié)調(diào),而不在乎其如何實(shí)現(xiàn)。B.作為能夠?qū)崿F(xiàn)特定功能的標(biāo)識(shí)存在,
20、也可以是什么接口方法都沒(méi)有的純粹標(biāo)識(shí)。C.需要將一組類視為單一的類,而調(diào)用者只通過(guò)接口來(lái)與這組類發(fā)生聯(lián)系。D.需要實(shí)現(xiàn)特定的多項(xiàng)功能,而這些功能之間可能完全沒(méi)有任何聯(lián)系。4 .abstractclass 的應(yīng)用場(chǎng)合一句話,在既需要統(tǒng)一的接口,又需要實(shí)例變量或缺省的方法的情況下,就可以使用它。最常見(jiàn)的有:A.定義了一組接口,但又不想強(qiáng)迫每個(gè)實(shí)現(xiàn)類都必須實(shí)現(xiàn)所有的接口??梢杂?abstractclass 定義一組方法體,甚至可以是空方法體,然后由子類選擇自己所感興趣的方法來(lái)覆蓋。B.某些場(chǎng)合下,只靠純粹的接口不能滿足類與類之間的協(xié)調(diào),還必需類中表示狀態(tài)的變量來(lái)區(qū)別不同的關(guān)系。abstract 的中介作用可以很好地滿足這一點(diǎn)。C.規(guī)范了一組相互協(xié)調(diào)的方法,其中一些方法是共同的,與狀態(tài)無(wú)關(guān)的,可以共享的,無(wú)需子類分別實(shí)現(xiàn);而另一些方法卻需要各個(gè)子類根據(jù)自己特定的狀態(tài)來(lái)實(shí)現(xiàn)特定的功能20.接口是否可繼承接口?抽象類是否可實(shí)現(xiàn)(implements)接口?抽象類是否可繼承實(shí)體類(concreteclass)?接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)(i
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《電工》高級(jí)練習(xí)題(含參考答案)
- 細(xì)節(jié)管理提升護(hù)理質(zhì)量
- AI大模型賦能港口設(shè)施數(shù)字運(yùn)維一體化智能解決方案
- 重癥監(jiān)護(hù)患者夜間睡眠
- 網(wǎng)絡(luò)服務(wù)器配置與管理(微課版) 習(xí)題及答案
- 2025年全民科學(xué)素質(zhì)競(jìng)賽網(wǎng)絡(luò)知識(shí)競(jìng)賽試題庫(kù)及答案(共150題)
- 銷售策劃目的試題及答案
- 河北省張家口市普通高中學(xué)業(yè)水平選擇性模擬考試三模 英語(yǔ)試題(含答案)
- 2025年山東省泰安市東平縣(五四學(xué)制)中考三模歷史試題(含答案)
- 2025【合同范本】租賃合同解除協(xié)議模板
- 成都市錦江區(qū)2022-2023學(xué)年四年級(jí)數(shù)學(xué)第二學(xué)期期末復(fù)習(xí)檢測(cè)試題含解析
- 山東黃金集團(tuán)昌邑礦業(yè)有限公司蓮花山鐵礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 顯微鏡望遠(yuǎn)鏡的設(shè)計(jì)與組裝
- 風(fēng)電財(cái)務(wù)經(jīng)濟(jì)評(píng)價(jià)講義資料課件
- 中石油職稱英語(yǔ)通用教材
- 金融業(yè)IPv6發(fā)展演進(jìn)白皮書(shū)
- 沖壓工藝及模具課程設(shè)計(jì)
- 淺議“五育融合”之勞動(dòng)教育的多向育人功能 論文
- 部編版語(yǔ)文六年級(jí)下冊(cè) 全冊(cè)看拼音寫(xiě)詞語(yǔ)(含答案)
- 2022年廣西高考物理試卷(甲卷)解析版
- 《如何與負(fù)面情緒共處》(課件)-小學(xué)生心理健康通用版
評(píng)論
0/150
提交評(píng)論