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