版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、JAVA 程序員面試 32 問第一 ,談談 final, finally, finalize 的區(qū)別。final- 修飾符 (關鍵字如果一個類被聲明為final ,意味著它不能再派生出新的子類 ,不 能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為 final 的。將變 量或方法聲明為 final , 可以保證它們在使用中不被改變。被聲明為 final 的變量必須在聲 明時給定初值 , 而在以后的引用中只能讀取 , 不可修改。 被聲明為 final 的方法也同樣只能 使用 ,不能重載finally- 再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個
2、異常 , 那么相 匹配的 catch 子句就會執(zhí)行 ,然后控制就會進入 finally 塊(如果有的話 。finalize-方法名。 Java 技術允許使用 finalize( 方法在垃圾收集器將對象從內(nèi)存中清除 出去之前做必要的清理工作。 這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個 對象調(diào)用的。 它是在 Object 類中定義的 , 因此所有的類都繼承了它。 子類覆蓋 finalize( 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize(方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。第二 , Anonymous Inner Class (匿名內(nèi)部類 是否可以 exten
3、ds(繼承 其它類 ,是否可以 implements(實現(xiàn) interface(接口 ?匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能 extends(繼承 其它類 ,但一個內(nèi)部類可以作為 一個接口 ,由另一個內(nèi)部類實現(xiàn)。第三 , Static Nested Class和 Inner Class的不同 ,說得越多越好 (面試題有的很籠統(tǒng) 。 Nested Class 一(般是 C+的說法 , Inner Class (一般是 JAVA 的說法 。 Java 內(nèi)部類與 C+嵌套類最大的不同就在于是否有指向外部的引用上。具體 可 見 http: /注:靜態(tài)內(nèi)部類 (Inner Class意味著 1 創(chuàng)建一個
4、 static 內(nèi)部類的對象 ,不需要一個外 部類對象 , 2 不能從一個 static 內(nèi)部類的一個對象訪問一個外部類對象第四 , &和 & 的區(qū)別。& 是位運算符。 & 是布爾邏輯運算符。第五 , HashMap 和 Hashtable 的區(qū)別。都屬于 Map 接口的類 ,實現(xiàn)了將惟一鍵映射到特定的值上。HashMap 類沒有分類或者排序。它允許一個null 鍵和多個 null 值。Hashtable類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為 它是同步的。第六 , Collection 和 Collections 的區(qū)別。Collec
5、tions 是個 java.util 下的類 ,它包含有各種有關集合操作的靜態(tài)方法。Collection 是個 java.util 下的接口 ,它是各種集合結構的父接口。第七 ,什么時候用 assert。斷言是一個包含布爾表達式的語句,在執(zhí)行這個語句時假定該表達式為true。如果表達式 計算為 false,那么系統(tǒng)會報告一個AssertionError。它用于調(diào)試目的 :assert(a 0; / throws an AssertionError if a = 0斷言可以有兩種形式 :assert Expression1 ;assert Expression1 : Expression2 ;E
6、xpression1 應該總是產(chǎn)生一個布爾值。Expression2 可以是得出一個值的任意表達式。這個值用于生成顯示更多調(diào)試信息的 String 消息。斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4標記 :javac -source 1.4 Test.java要在運行時啟用斷言 ,可使用 -enableassertions或者 -ea 標記。要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions標記。要系統(tǒng)類中啟用斷言 ,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷 言??梢栽陬A計正常情況下不會到達的任何位
7、置上放置斷言。 斷言可以用于驗證傳遞給私有方法 的參數(shù)。不過 , 斷言不應該用于驗證傳遞給公有方法的參數(shù) , 因為不管是否啟用了斷言 ,公 有方法都必須檢查其參數(shù)。 不過 , 既可以在公有方法中 , 也可以在非公有方法中利用斷言測 試后置條件。另外 ,斷言不應該以任何方式改變程序的狀態(tài)。第八 , GC 是什么 ? 為什么要有 GC? (基礎 。GC 是垃圾收集器。 Java 程序員不用擔心內(nèi)存管理 ,因為垃圾收集器會自動進行管理。要請 求垃圾收集 ,可以調(diào)用下面的方法之一 :System.gc(Runtime.getRuntime(.gc(第九 , String s = new String(
8、xyz;創(chuàng)建了幾個 String Object?兩個對象 ,一個是 “xyx”一,個是指向 “xyx的”引用對象 s 。第十 , Math.round(11.5等於多少 ? Math.round(-11.5等於多少 ?Math.round(11.5 返回 (long 12, Math.round(-11.5 返回 (long -11;第十一 , short s1 = 1; s1 = s1 + 1;有什么錯 ? short s1 = 1; s1 += 1;有什么錯 ? short s1 = 1; s1 = s1 + 1;有錯 , s1 是 short 型, s1+1是 int 型 , 不能顯式轉
9、化為 short 型??尚薷臑?s1 =(short(s1 + 1。 short s1 = 1; s1 += 1正確。第十二 , sleep( 和 wait( 有什么區(qū)別 ? 搞線程的最愛sleep(方法是使線程停止一段時間的方法。在 sleep 時間間隔期滿后 ,線程不一定立即恢 復執(zhí)行。這是因為在那個時刻 ,其它線程可能正在運行而且沒有被調(diào)度為放棄執(zhí)行 ,除非(a “醒來 ”的線程具有更高的優(yōu)先級(b 正在運行的線程因為其它原因而阻塞。wait(是線程交互時 ,如果線程對一個同步對象x 發(fā)出一個 wait( 調(diào)用 ,該線程會暫停執(zhí)行,被調(diào)對象進入等待狀態(tài) ,直到被喚醒或等待時間到。第十三
10、, Java有沒有 goto?Goto-java 中的保留字 ,現(xiàn)在沒有在 java 中使用。第十四 ,數(shù)組有沒有 length(這個方法 ? String 有沒有 length(這個方法 ?數(shù)組沒有 length(這個方法 ,有 length 的屬性。String 有有 length(這個方法。第十五 , Overload 和 Override 的區(qū)別。 Overloaded 的方法是否可以改變返回值的類型 ? 方法的重寫 Overriding 和重載 Overloading 是 Java 多態(tài)性的不同表現(xiàn)。重寫 Overriding 是父類與子類之間多態(tài)性的一種表現(xiàn) , 重載 Overlo
11、ading 是一個類中多態(tài)性的一種表現(xiàn)。 如 果在子類中定義某方法與其父類有相同的名稱和參數(shù) , 我們說該方法被重寫 (Overriding 。 子類的對象使用這個方法時 , 將調(diào)用子類中的定義 , 對它而言 , 父類中的定義如同被 “屏蔽 ”了。 如果在一個類中定義了多個同名的方法 , 它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型 , 則稱為方法的重載 (Overloading。 Overloaded 的方法是可以改變返回值的類型。第十六 , Set 里的元素是不能重復的 ,那么用什么方法來區(qū)分重復與否呢 ? 是用=還是 equals(?它們有何區(qū)別 ?Set 里的元素是不能重復的 , 那么用
12、iterator(方法來區(qū)分重復與否。 equals(是判讀兩個 Set 是否相等。equals(和 =方法決定引用值是否指向同一對象 equals(在類中被覆蓋 ,為的是當兩個分 離的對象的內(nèi)容和類型相配的話 ,返回真值。第十七 ,給我一個你最常見到的runtime exception。ArithmeticException, ArrayStoreException, BufferOverflowException,BufferUnderflowException, CannotRedoException, CannotUndoException,ClassCastException, CM
13、MException, ConcurrentModificationException,DOMException, EmptyStackException, IllegalArgumentException,IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,ImagingOpException, IndexOutOfBoundsException, MissingResourceException,NegativeArraySizeException, NoSuchElementExce
14、ption, NullPointerException,ProfileDataException, ProviderException, RasterFormatException, SecurityException,SystemException, UndeclaredThrowableException, UnmodifiableSetException,UnsupportedOperationException第十八 , error 和 exception 有什么區(qū)別 ?error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。 比如說內(nèi)存溢出。 不可能指 望程序能處理這樣的情況。
15、exception 表示一種設計或?qū)崿F(xiàn)問題。 也就是說 , 它表示如果程序運行正常 , 從不會發(fā)生的 情況。第十九 , List, Set, Map 是否繼承自 Collection 接口 ?List , Set 是Map 不是第二十 , abstract class和 interface 有什么區(qū)別 ?抽象類里面可以有非抽象方法但接口里只能有抽象方法聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類 (abstract class 它,用于要創(chuàng)建一個體 現(xiàn)某些基本行為的類 ,并為該類聲明方法 ,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建 abstract類的實例。然而可以創(chuàng)建一個變量 ,其類型是一個抽象
16、類 ,并讓它指向具體子類 的一個實例。不能有抽象構造函數(shù)或抽象靜態(tài)方法。 Abstract 類的子類為它們父類中的所 有抽象方法提供實現(xiàn) ,否則它們也是抽象類為。取而代之 ,在子類中實現(xiàn)該方法。 知道其行 為的其它類可以在類中實現(xiàn)這些方法。接口 (interface 是抽象類的變體。在接口中 ,所有方法都是抽象的。多繼承性可通過實 現(xiàn)這樣的接口而獲得。 接口中的所有方法都是抽象的 , 沒有一個有程序體。接口只可以定義 static final 成員變量。接口的實現(xiàn)與子類相似 ,除了該實現(xiàn)類不能從接口定義中繼承行 為。當類實現(xiàn)特殊接口時 ,它定義 (即將程序體給予所有這種接口的方法。然后 ,它可
17、以 在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。 由于有抽象類 , 它允許使用接口名作為 引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉換到接口類型或從接口類型轉換 , instanceof 運算符可以用來決定某對象的類是否實現(xiàn)了接口。第二十一 , abstract的 method 是否可同時是 static, 是否可同時是 native , 是否可同時是 synchronized?都不能第二十二 ,接口是否可繼承接口 ? 抽象類是否可實現(xiàn) (implements 接口 ? 抽象類是否可繼 承實體類 (concrete class?接口可以繼承接口。 抽象類可以實現(xiàn) (implements
18、 接口 , 抽象類是否可繼承實體類 , 但前提 是實體類必須有明確的構造函數(shù)。第二十三 ,啟動一個線程是用run(還是 start(?啟動一個線程是調(diào)用 start(方法 ,使線程所代表的虛擬處理機處于可運行狀態(tài) ,這意味著 它可以由 JVM 調(diào)度并執(zhí)行。這并不意味著線程就會立即運行。 run(方法可以產(chǎn)生必須退出 的標志來停止一個線程。第二十四 ,構造器 Constructor 是否可被 override?構造器 Constructor 不能被繼承 ,因此不能重寫 Overriding ,但可以被重載Overloading 。第二十五 ,是否可以繼承 String 類 ?String 類是
19、final 類故不可以繼承。第二十六 ,當一個線程進入一個對象的一個 synchronized 方法后 ,其它線程是否可進入此 對象的其它方法 ?不能 ,一個對象的一個synchronized 方法只能由一個線程訪問。第二十七 , try 里有一個 return 語句 ,那么緊跟在這個 try 后的 finally 里的 code 會不會被執(zhí)行 ,什么時候被執(zhí)行 ,在 return 前還是后 ?會執(zhí)行 ,在 return 前執(zhí)行。第二十八 ,編程題 : 用最有效率的方法算出2 乘以 8 等於幾 ?有 C 背景的程序員特別喜歡問這種問題。23第二十九 ,兩個對象值相同 (x.equals(y =
20、 true,但卻可有不同的 hash code,這句話對不對 ?不對 ,有相同的 hash code。第三十 ,當一個對象被當作參數(shù)傳遞到一個方法后 ,此方法可改變這個對象的屬性 ,并可 返回變化后的結果 ,那么這里到底是值傳遞還是引用傳遞 ?是值傳遞。 Java編程語言只由值傳遞參數(shù)。當一個對象實例作為一個參數(shù)被傳遞到方法中 時 , 參數(shù)的值就是對該對象的引用。對象的內(nèi)容可以在被調(diào)用的方法中改變 , 但對象的引用 是永遠不會改變的。第三十一 , swtich 是否能作用在 byte 上 ,是否能作用在 long 上,是否能作用在 String 上 ?switch (expr1 中 , exp
21、r1 是一個整數(shù)表達式。因此傳遞給 switch 和 case語句的參數(shù) 應該是 int 、 short、 char 或者 byte。 long,string 都不能作用于 swtich 。第三十二 ,編程題 : 寫一個 Singleton 出來。Singleton 模式主要作用是保證在 Java 應用程序中 , 一個類 Class 只有一個實例存在。 一般 Singleton 模式通常有幾種種形式 :第一種形式 : 定義一個類 ,它的構造函數(shù)為 private 的,它有一個 static 的 private 的該 類變量 , 在類初始化時實例話 , 通過一個 public 的 getInstance方法獲取對它的引用 , 繼而 調(diào)用其中的方法。public class Singleton private Singleton(/在自己內(nèi)部定義自己一個實例,是不是很奇怪 ?/注意這是 private 只供內(nèi)部調(diào)用private static Singleton instance = new Singleton(;/這里提供了一個供外部訪問本class 的靜態(tài)方法 ,可以直接訪問public static Singleton getInstance( return instance;第二種形式 : public class S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 感恩老師發(fā)言稿14篇
- 安全主題教育活動方案
- 汽車租賃服務投標方案(技術標)
- 連云港做實“一帶一路交匯點”建設的對策思考
- 公司財務知識分享
- 基于生物信息學探索妊娠期糖尿病與尿苷代謝相關的關鍵基因
- 《駱駝祥子》 上課課件
- 二零二五版企業(yè)向個人發(fā)放汽車貸款合同示例3篇
- 科創(chuàng)孵化器項目融資報告
- 建立強大的醫(yī)院管理團隊
- 數(shù)字的秘密生活:最有趣的50個數(shù)學故事
- 移動商務內(nèi)容運營(吳洪貴)任務一 移動商務內(nèi)容運營關鍵要素分解
- 基于ADAMS的汽車懸架系統(tǒng)建模與優(yōu)化
- 當前中國個人極端暴力犯罪個案研究
- 中國象棋比賽規(guī)則
- 7天減肥餐食譜給你最能瘦的一周減肥食譜
- GB/T 31525-2015圖形標志電動汽車充換電設施標志
- 最新北師大版八年級數(shù)學下冊教學課件全冊
- 裝飾業(yè)務員培訓教程方案
- Q∕SY 06342-2018 油氣管道伴行道路設計規(guī)范
- 2022年五年級解方程小數(shù)和分數(shù)計算題
評論
0/150
提交評論