版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基礎(chǔ)知識:1.C++或 Java 中的異常處理機(jī)制的簡單原理和應(yīng)用。當(dāng) JAVA 程序違反了 JAVA 的語義規(guī)則時(shí),JAVA 虛擬機(jī)就會將發(fā)生的錯(cuò)誤表示為一個(gè)異常。違反語義規(guī)則包括 2 種情況。 一種是 JAVA 類庫內(nèi) 置的語義檢查。 例如數(shù)組下標(biāo)越界,會引發(fā)IndexOutOfBoundsException;訪問 null 的對象時(shí)會引發(fā) NullPointerException。另一種情況就是 JAVA 允許程序員擴(kuò)展這種語義檢
2、查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時(shí)用 throw 關(guān)鍵字引發(fā)異常。所有的異常都是 java.lang.Thowable 的子類。2. Java 的接口和 C++的虛類的相同和不同處。由于 Java 不支持多繼承,而有可能某個(gè)類或?qū)ο笠褂梅謩e在幾個(gè)類或?qū)ο罄锩娴姆椒ɑ驅(qū)傩裕F(xiàn)有的單繼承機(jī)制就不能滿足要求。與繼承相比,接 口有更高的靈活性,因?yàn)榻涌谥袥]有任何實(shí)現(xiàn)代碼。 當(dāng)一個(gè)類實(shí)現(xiàn)了接口以后,該類要實(shí)現(xiàn)接口里面所有的方法和屬性
3、,并且接口里面的屬性在默認(rèn)狀態(tài)下面都是 public static,所有方法默認(rèn)情況下是 public.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。3. 垃圾回收的優(yōu)點(diǎn)和原理。并考慮 2 種回收機(jī)制。Java 語言中一個(gè)顯著的特點(diǎn)就是引入了垃圾回收機(jī)制,使 c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,它使得 Java 程序員在編寫程序的時(shí)候 不再需要考慮內(nèi)存管理。由于有個(gè)垃圾回收機(jī)制,Java 中的對象不再有“作用域”的概念,只有對象的引用才有“作用域”。
4、 垃圾回收可以有效的防止內(nèi)存泄 露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個(gè)單獨(dú)的低級別的線程運(yùn)行,不可預(yù)知的情況下對內(nèi)存堆中已經(jīng)死亡的或者長時(shí)間沒有使用的對象進(jìn)行清 楚和回收,程序員不能實(shí)時(shí)的調(diào)用垃圾回收器對某個(gè)對象或所有對象進(jìn)行垃圾回收?;厥諜C(jī)制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。4. 請說出你所知道的線程同步的方法。wait():使一個(gè)線程處于等待狀態(tài),并且釋放所持有的對象的 lock。sleep():使一個(gè)
5、正在運(yùn)行的線程處于睡眠狀態(tài),是一個(gè)靜態(tài)方法,調(diào)用此方法要捕捉InterruptedException 異常。notify():喚醒一個(gè)處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時(shí)候,并不能確切的喚醒某一個(gè)等待狀態(tài)的線程,而是由 JVM 確定喚醒哪個(gè)線程,而且不是按優(yōu)先級。Allnotity():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個(gè)對象的鎖,而是讓它們競爭。5. 請講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用。6. Error
6、與 Exception 有什么區(qū)別?不能作為父類被繼承。 因此一個(gè)類不能既被聲明 為 abstract 的,又被聲明為 final 的。 將變量或方法聲明為 final,可以保證它們在使用中不被改變。被聲明為 final 的變量必須在聲明時(shí)給定 初值,而在以后的引用中只能讀取,不可修改。 被聲明為 final 的方法也同樣只能使用,不能重載。finally—再異常處理時(shí)提供 finally 塊來執(zhí)行任何清除操作。 如果拋出一個(gè)異常,那么
7、相匹配的 catch 子句就會執(zhí)行,然后控制就會進(jìn)入 finally 塊(如果有的話)。finalize—方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。 這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒有被引用時(shí)對這個(gè)對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。 finalize()
8、 方法是在垃圾收集器刪除對象之前對這個(gè)對象調(diào)用的。13,Anonymous Inner Class ( 匿名內(nèi)部類) 是否可以 extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能 extends(繼承) 其它類,但一個(gè)內(nèi)部類可以作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(xiàn)。14,Static Nested Class 和 Inner Class 的不同,說得越多越好(面
9、試題有的很籠統(tǒng))。Nested Class (一般是 C++的說法),Inner Class (一般是 JAVA 的說法)。Java 內(nèi)部類與C++ 嵌 套 類 最 大 的 不 同 就 在 于 是 否 有 指 向 外 部 的 引 用 上 。 具 體 可 見 http://www.frontfree.net/articles/services/view.asp?id=704&page=1注: 靜態(tài)內(nèi)部類(Inner Class)意
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論