




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
談談final,finally,finalize的區(qū)別。final—修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的類變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。局部變量聲明時可以不賦值,生命周期內(nèi)只能賦值一次。被聲明為final的方法也同樣只能使用,不能重寫(子類覆蓋),可以重載。
finally—異常處理時提供finally塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的catch子句就會執(zhí)行,然后控制就會進入finally塊(如果有的話)。finally語句總會被執(zhí)行,如果遇到return的話,就先跑去執(zhí)行finally,再returnfinalize—方法名。Java技術(shù)允許使用finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。AnonymousInnerClass(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)? 匿名類在實現(xiàn)時,必須借助一個類或一個接口,若從這個層次說它是可以繼承一個類或一個接口的。但是通過extendsimplements關(guān)鍵字那是不可能的。一個內(nèi)部類可以作為一個接口由另一個內(nèi)部類實現(xiàn)。在使用匿名內(nèi)部類時,要記住以下幾個原則:
·匿名內(nèi)部類不能有構(gòu)造方法。
·匿名內(nèi)部類不能定義任何靜態(tài)成員、方法和類。
·匿名內(nèi)部類不能是public,protected,private,static。
·只能創(chuàng)建匿名內(nèi)部類的一個實例。
·一個匿名內(nèi)部類一定是在new的后面,用其隱含實現(xiàn)一個接口或?qū)崿F(xiàn)一個類。
·因匿名內(nèi)部類為局部內(nèi)部類,所以局部內(nèi)部類的所有限制都對其生效。
StaticNestedClass和InnerClass的不同,說得越多越好(面試題有的很籠統(tǒng))。NestedClass一般是C++的說法,InnerClass一般是JAVA的說法。
Nestedclass分為靜態(tài)Staticnestedclass的和非靜態(tài)的innerclass,
靜態(tài)的Staticnestedclass是不可以直接調(diào)用它的外部類enclosingclass的,但是可以通過外部類的引用來調(diào)用,就像你在一個類中寫了main方法一樣。
非靜態(tài)類innerclass可以自由的引用外部類的屬性和方法,但是它與一個實例綁定在了一起,不可以定義靜態(tài)的屬性、方法。
InnerClass(內(nèi)部類)定義在類中的類。
NestedClass(嵌套類)是靜態(tài)(static)內(nèi)部類。1.要創(chuàng)建嵌套類的對象,并不需要其外圍類的對象。2.不能從嵌套類的對象中訪問非靜態(tài)的外圍類對象。
AnonymousInnerClass(匿名內(nèi)部類)匿名的內(nèi)部類是沒有名字的內(nèi)部類。
第四,&和&&的區(qū)別。“&&”是邏輯運算中的“短路”,若"&&"前的條件為false時判斷結(jié)果為false,不再執(zhí)行"&&"后的語句塊。"&&"前為true則繼續(xù)進行進行后半部分的判斷
“&”是兩邊都要經(jīng)過判斷&&是邏輯運算符,表示邏輯與&是位運算符,表示位與;位運算針對二進制數(shù)0和1;0&0=0,0&1=0,1&0=0,1&1=1HashMap和Hashtable的區(qū)別。1.hashMap去掉了HashTable的contains方法,但是加上了containsValue()和containsKey()方法。
2.hashTable同步的,而HashMap是非同步的,效率上比hashTable要高。
3.hashMap允許空鍵值,而hashTable不允許。第六,Collection和Collections的區(qū)別。Collection和Collections的區(qū)別。
Collections是個java.util下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。排序(Sort)2)混排(Shuffling)3)反轉(zhuǎn)(Reverse)4)替換所以的元素(Fill)5)拷貝(Copy)
Collection是個java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。什么時候用assert。斷言是一個包含布爾表達式的語句,在執(zhí)行這個語句時假定該表達式為true。如果表達式計算為false,那么系統(tǒng)會報告一個Assertionerror。它用于調(diào)試目的GC是什么?為什么要有GC?GC是垃圾收集的意思(GabageCollection),Java有了GC,就不需要程序員去人工釋放內(nèi)存空間。當Java虛擬機發(fā)覺內(nèi)存資源緊張的時候,就會自動地去清理無用變量所占用的內(nèi)存空間。當然,如果需要,程序員可以在Java程序中顯式地使用System.gc()來強制進行一次立即的內(nèi)存清理。Strings=newString("xyz");創(chuàng)建了幾個StringObject?一個是編譯時決定的,最后放在常量池中。一個是運行時放在堆里面的。兩個都是"xyz",常量池中只可能只有一個“xyz”,但是堆中可能有多個,因為你這里用了newString來強制在堆中再創(chuàng)建了一個對象,所以是兩個哈;如果是Strings="xyz"這樣的,s這個引用就會直接指向常量池的"xyz",而不會是指向你在堆中創(chuàng)建的“xyz”。Math.round(11.5)等於多少?Math.round(-11.5)等於多少?他表示“四舍五入”,算法為Math.floor(x+0.5),即將原來的數(shù)字加上0.5后再向下取整,所以,Math.round(11.5)的結(jié)果是12,Math.round(-11.5)的結(jié)果為-11.ceil向上取整第十一,shorts1=1;s1=s1+1;有什么錯?shorts1=1;s1+=1;有什么錯?short占2個字節(jié),int占4個字節(jié),short型變量+上int型值計算結(jié)果是int型,占4個字節(jié),然后付給一個short型變量s1,就要丟失2個字節(jié)的精度,這是不容許的。你非要這么做的話,我給你提供一個辦法:
簡單賦值運算和復合賦值運算的最大差別就在于:復合賦值運算符會自動地將運算結(jié)果轉(zhuǎn)型為其左操作數(shù)的類型!第十二,sleep()和wait()有什么區(qū)別?sleep是線程類(Thread)的方法,導致此線程暫停執(zhí)行指定時間,給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復。調(diào)用sleep不會釋放對象鎖。
wait是Object類的方法,對此對象調(diào)用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態(tài)。第十三,Java有沒有g(shù)oto?goto,const都是Java的保留字但并沒有實現(xiàn)它,一直不用,所以現(xiàn)在就等于沒有。第十四,數(shù)組有沒有l(wèi)ength()這個方法?String有沒有l(wèi)ength()這個方法?
數(shù)組中沒有l(wèi)ength()這個方法,但是數(shù)組中有l(wèi)ength這個屬性。用來表示數(shù)組的長度。
String中有l(wèi)ength()這個方法。用來得到字符串的長度。第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。第十六,Set里的元素是不能重復的,那么用什么方法來區(qū)分重復與否呢?是用==還是equals()?它們有何區(qū)別?==是用來判斷兩者是否是同一對象,而equals是用來判斷是否引用同一個對象。再看一下Set里面存的是對象,還是對象的引用。根據(jù)java的存儲機制可知,set里面存放的是對象的引用,所以當兩個元素只要滿足了equals()時就已經(jīng)指向同一個對象,也就出現(xiàn)了重復元素。所以應該用equals()來判斷。第十七,給我一個你最常見到的runtimeexception。ClassCastException對象強轉(zhuǎn)時出錯NullPointerExceptionArrayIndexOutOfBoundsException一般異常:
IOException
FileNotFoundException
SqlException第十八,error和exception有什么區(qū)別?Error類和Exception類都繼續(xù)自Throwable類。Exception:1.可以是可被控制(checked)或不可控制的(unchecked)?2.表示一個由程序員導致的錯誤?3.應該在應用程序級被處理Error:1.總是不可控制的(unchecked)?2.經(jīng)常用來用于表示系統(tǒng)錯誤或低層資源的錯誤?3.如何可能的話,應該在系統(tǒng)級被捕捉像內(nèi)存溢出之類的就是error第十九,List,Set,Map是否繼承自Collection接口?Map沒有繼承Collection接口,Map提供key到value的映射。一個Map中不能包含相同key,每個key只能映射一個value第二十,abstractclass和interface有什么區(qū)別?前者是抽象類,后者是接口。
抽象類和接口都可以被繼承,不同的是,接口內(nèi)的方法不能實現(xiàn),需要繼承的類來具體實現(xiàn)其方法,而抽象類中的方法可以被具體實現(xiàn),并且繼承的類可以重寫其方法。一個類可以繼承一個抽象類,但是可以繼承多個接口。通常,接口被運用于實現(xiàn)比較常用的功能,便于日后維護或者添加刪除方法,而抽象類更傾向于充當公共類的角色。不適于在日后重新對里面的代碼進行修改。第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?abstract需要重載,static為類方法,沒有覆蓋一說
.abstract為沒有實現(xiàn)的方法,native為本機實現(xiàn)的方法,自相矛盾.abstract方法沒有實現(xiàn),也不可能實際調(diào)用抽象方法,沒有必要synchronized修飾,當然子類可以根據(jù)需要同步該方法.所以
都不能第二十二,接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concreteclass)?接口可以繼承接口。抽象類可以實現(xiàn)(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構(gòu)造函數(shù)。第二十三,啟動一個線程是用run()還是start()?啟動一個線程是調(diào)用start()方法,使線程所代表的虛擬處理機處于可運行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會立即運行。第二十四,構(gòu)造器Constructor是否可被override?構(gòu)造器Constructor不能被繼承,因此不能重寫Override。但在同類中可以被重載Overload。第二十五,是否可以繼承String類?它是finally類,主要是為了“效率”和“安全性”的緣故。若String允許被繼承,由于它的高度被使用率,可能會降低程序的性能,所以String被定義成final。第二十六,當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法?可以進入其他非synchronized的方法,synchronized的方法不可以的如果一個對象有多個synchronized方法,某一時刻某個線程已經(jīng)進入到了某個synchronized方法,那么在該方法沒有執(zhí)行完畢前,其他線程是無法訪問該對象的任何synchronized方法的。第二十七,try{}里有一個return語句,那么緊跟在這個try后的finally{}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?只有代碼中有system.exit()
這一種情況
才不會執(zhí)行finally,因為終止了虛擬機進程第二十八,編程題:用最有效率的方法算出2乘以8等於幾?用移位運算inta=2<<3;
a就是2乘以8最后結(jié)果是16這是最省內(nèi)存最有效率的方法
這個方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級語文下冊期中考試試卷分析
- 中醫(yī)基礎學習題含答案
- 中級電工模擬試題及參考答案
- 廠里工序分包協(xié)議合同范本
- 債券抵押合同范本
- 一年級班主任的個人年底總結(jié)
- 一年級下學期體育教學計劃
- 廠家招商加盟合同范例
- 《黃帝內(nèi)經(jīng)》讀書心得體會
- 廠家飯盒供貨合同范本
- 2024年12月重慶大學醫(yī)院公開招聘醫(yī)生崗位2人(有編制)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 主題班會:新學期 新起點 新期待
- 2024 河北公務員考試(筆試、省直、A類、C類)4套真題及答案
- 小學生雙擁活動國防教育
- 消防風道風管施工方案
- 和利時DCS系統(tǒng)課件
- 2.2 生態(tài)脆弱區(qū)的綜合治理 課件 【知識精研】高二地理人教版(2019)選擇性必修2
- 餐廳服務人員話術(shù)培訓
- 遠程醫(yī)療創(chuàng)業(yè)計劃書
- 初中生心理健康教育講座課件
- 廣東省廣州市白云區(qū)2023-2024學年八年級上學期期末英語試題(答案)
評論
0/150
提交評論