freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java面試題-解密版(參考版)

2025-01-21 04:25本頁(yè)面
  

【正文】 } 3)創(chuàng)建 File 對(duì)象,調(diào)用其 exsit()方法即可返回是否存在,如: (new File(d:\\).exists())。 i。 File[] files = ()。 i++){ if(files[i].isFile()) (files[i])。 for(int i=0。9文件和目錄(IO)操作:1)如何列出某個(gè)目錄下的所有文件?2)如何列出某個(gè)目錄下的所有子目錄?3)如何判斷一個(gè)文件或目錄是否存在?4)如何讀寫文件?【基礎(chǔ)】答:1)示例代碼如下: File file = new File(e:\\總結(jié))。字節(jié)流繼承于 InputStream、OutputStream,字符流繼承于 Reader、Writer。序列化是為了解決在對(duì)對(duì)象流進(jìn)行讀寫操作時(shí)所引發(fā)的問(wèn)題;序列化的實(shí)現(xiàn):將需要被序列化的類實(shí)現(xiàn) Serializable 接口,該接口沒(méi)有需實(shí)現(xiàn)的方法,implements Serializable 只是為了標(biāo)注該對(duì)象是可被序列化的,然后使用一個(gè)輸出流(如 FileOutputStream)來(lái)構(gòu)造一個(gè) ObjectOutputStream(對(duì)象流)對(duì)象,接著,使用 ObjectOutputStream 對(duì)象的 writeObject(Object obj)方法就可以將參數(shù)為 obj 的對(duì)象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。 }}IO 流及 Socket 部分:(共 5 題:基礎(chǔ) 5 道)9什么是 java 序列化,如何實(shí)現(xiàn) java 序列化?【基礎(chǔ)】答:序列化就是一種用來(lái)處理對(duì)象流的機(jī)制,所謂對(duì)象流也就是將對(duì)象的內(nèi)容進(jìn)行流化。 i++){ inc()。 } } } class Inc implements Runnable { public void run() { for(int i=0。 i100。 new Thread(new Inc()).start()。 new Thread(new Inc()).start()。 (j + Dec + ().getName())。 (j + Inc +().getName())。 public TestThread(int j) { = j。90、設(shè)計(jì) 4 個(gè)線程,其中兩個(gè)線程每次對(duì) j 增加 1,另兩個(gè)線程對(duì) j 每次減少 1;寫出程序。若標(biāo)志指出線程應(yīng)該掛起,便用 wait()命其進(jìn)入等待狀態(tài)。對(duì)任何線程來(lái)說(shuō),如果它們想恢復(fù)目標(biāo)線程,同時(shí)又試圖使用任何一個(gè)鎖定的資源,就會(huì)造成死鎖。調(diào)用 suspend()的時(shí)候,目標(biāo)線程會(huì)停下來(lái),但卻仍然持有在這之前獲得的鎖定。它會(huì)解除由線程獲取的所有鎖定,而且如果對(duì)象處于一種不連貫狀態(tài),那么其他線程能在那種狀態(tài)下檢查和修改它們。synchronized 會(huì)自動(dòng)釋放鎖,而 Lock 一定要求程序員手工釋放,并且必須在finally 從句中釋放。8 線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系?【基礎(chǔ)】答:線程指在程序執(zhí)行過(guò)程中,能夠執(zhí)行程序代碼的一個(gè)執(zhí)行單位,每個(gè)程序至少都有一個(gè)線程,也就是程序本身;Java 中的線程有四種狀態(tài)分別是:運(yùn)行、就緒、掛起、結(jié)束。8啟動(dòng)一個(gè)線程是用 run()還是 start()?【基礎(chǔ)】答:?jiǎn)?dòng)一個(gè)線程是調(diào)用 start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由 JVM 調(diào)度并執(zhí)行。例如正在寫的數(shù)據(jù)以后可能被另一個(gè)線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個(gè)線程寫過(guò)了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進(jìn)行同步存取。8同步和異步有何異同,在什么情況下分別使用他們?舉例說(shuō)明。 notify():喚醒一個(gè)處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時(shí)候,并不能確切的喚醒某一個(gè)等待狀態(tài)的線程,而是由 JVM 確定喚醒哪個(gè)線程,而且不是按優(yōu)先級(jí); notityAll():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個(gè)對(duì)象的鎖,而是讓它們競(jìng)爭(zhēng)。【基礎(chǔ)】8請(qǐng)說(shuō)出你所知道的線程同步的方法。wait 是 Object 類的方法,對(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)。線程部分:(共 10 題:基礎(chǔ) 7 道,中等難度 3 道)8sleep() 和 wait() 有什么區(qū)別? 【基礎(chǔ)】答:sleep 是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。 ()。i++){ (al[+i+]=+(i))。 for(int i=0。 break。 MaxSize++。jMaxSize 。 (())。 if(() = ((Integer)(MaxSize1)).intValue()){ (MaxSize,tempInt)。i()。 int MaxSize=1。 (al[+i+]=+(i))。inum 。 (The ArrayList Sort Before:)。 public InsertSort(int num,int mod) { al = new ArrayList(num)。 import .*。 } } public static void main(String[] args) { printRandomBySort()。 int count = 0。 } (list)。 i 10。 // 創(chuàng)建隨機(jī)數(shù)生成器 List list = new ArrayList()。 import 。 import 。 import 。7用程序給出隨便大小的10個(gè)數(shù),序號(hào)為 110,按從小到大順序輸出,并輸出相應(yīng)的序號(hào)。7Set 里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是 equals()? 它們有何區(qū)別? 【基礎(chǔ)】答:里的元素是不能重復(fù)的, equals ()方法來(lái)區(qū)分重復(fù)與否。Set 無(wú)法擁有重復(fù)元素,內(nèi)部排序。7Arraylist 與 Vector 區(qū)別?【基礎(chǔ)】答:就 ArrayList 與 Vector 主要從二方面來(lái)說(shuō):1)同步性:Vector 是線程安全的(同步),而 ArrayList 是線程序不安全的;2)數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector 默認(rèn)增長(zhǎng)一倍,而 ArrayList 卻是一半。7HashMap 和 Hashtable 的區(qū)別? 【基礎(chǔ)】答:二者都實(shí)現(xiàn)了 Map 接口,是將惟一鍵映射到特定的值上;主要區(qū)別在于:1)HashMap 沒(méi)有排序,允許一個(gè) null 鍵和多個(gè) null 值,而 Hashtable 不允許;2)HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和containsKey,因?yàn)?contains 方法容易讓人引起誤解;3)Hashtable 繼承自 Dictionary 類, HashMap 是 引進(jìn)的 Map 接口的實(shí)現(xiàn);4)Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多個(gè)線程訪問(wèn)Hashtable 時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而 HashMap 就必須為之提供外同步。7說(shuō)出 ArrayList,Vector, LinkedList 的存儲(chǔ)性能和特性?【基礎(chǔ)】答:ArrayList 和 Vector 都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector 由于使用了 synchronized 方法(線程安全),通常性能上較 ArrayList 差,而LinkedList 使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。 Map 提供了一個(gè)更通用的元素存儲(chǔ)方法。List 的具體實(shí)現(xiàn)包括 ArrayList 和Vector,它們是可變大小的列表,比較適合構(gòu)建、存儲(chǔ)和操作任何類型對(duì)象的元素列表。7List,Set,Map 是否繼承自 Collection 接口?【基礎(chǔ)】答:List,Set 是;Map 不是。6類 Example A 繼承 Exception,類 ExampleB 繼承 Example A; 【基礎(chǔ)】有如下代碼片斷:try{ throw new ExampleB(“b”);}catch(ExampleA e){ (“ExampleA”) ;}catch(Exception e){ (“Exception”) ;}輸出的內(nèi)容應(yīng)該是:A:ExampleA B:Exception C:b D:無(wú)答:輸出為 A。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒(méi)有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。finally:再異常處理時(shí)提供 finally 塊來(lái)執(zhí)行任何清除操作;如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入 finally 塊(如果有的話)。java 編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。如果下一級(jí)的 try 語(yǔ)句沒(méi)有對(duì)某種“異常”進(jìn)行處理,堆棧就會(huì)展開(kāi),直到遇到有處理這種“異?!钡?try 語(yǔ)句。一般情況下是用 try 來(lái)執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會(huì)拋出(throws)一個(gè)異常,這時(shí)候你可以通過(guò)它的類型來(lái)捕捉(catch)它,或最后(finally)由缺省處理器來(lái)處理; try 用來(lái)指定一塊預(yù)防所有“異常”的程序; catch 子句緊跟在 try 塊后面,用來(lái)指定你想要捕捉的“異常”的類型; throw 語(yǔ)句用來(lái)明確地拋出一個(gè)“異常”; throws 用來(lái)標(biāo)明一個(gè)成員函數(shù)可能拋出的各種“異?!?; Finally 為確保一段代碼不管發(fā)生什么“異常”都被執(zhí)行一段代碼; 可以在一個(gè)成員函數(shù)調(diào)用的外面寫一個(gè) try 語(yǔ)句,在這個(gè)成員函數(shù)內(nèi)部寫另一個(gè) try 語(yǔ)句保護(hù)其他代碼。當(dāng)一個(gè)方法出現(xiàn)異常后便拋出一個(gè)異常對(duì)象,該對(duì)象中包含有異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并進(jìn)行處理。6JAVA 語(yǔ)言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finally分別代表什么意義?在 try 塊中可以拋出異常嗎?【基礎(chǔ)】答:Java 通過(guò)面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。6error 和 exception 有什么區(qū)別? 【基礎(chǔ)】答:error 表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,是恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題;比如內(nèi)存溢出,不可能指望程序能處理這樣的情況;exception 表示需要捕捉或者需要程序進(jìn)行處理的異常,是一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題;也就是說(shuō),它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。另一種情況就是 JAVA 允許程序員擴(kuò)展這種語(yǔ)義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時(shí)用 throw 關(guān)鍵字引發(fā)異常。例如數(shù)組下標(biāo)越界,會(huì)引發(fā) IndexOutOfBoundsException。違反語(yǔ)義規(guī)則包括 2 種情況。另外,斷言不應(yīng)該以任何方式改變程序的狀態(tài)。不過(guò),斷言不應(yīng)該用于驗(yàn)證傳遞給公有方法的參數(shù),因?yàn)椴还苁欠駟⒂昧藬嘌?,公有方法都必須檢查其參數(shù)??梢栽陬A(yù)計(jì)正常情況下不會(huì)到達(dá)的任何位置上放置斷言。 要在系統(tǒng)類中啟用斷言,可使用 esa 或者 dsa 標(biāo)記。 斷言在默認(rèn)情況下是禁用的, 要在編譯時(shí)啟用斷言,需使用 source 標(biāo)記:javac source 要在運(yùn)行時(shí)啟用斷言,可使用 enableassertions 或者 ea 標(biāo)記。 Expression1 應(yīng)該總是產(chǎn)生一個(gè)布爾值。 // throws an Assertionerror if a = 0 斷言可以有兩種形式: assert Expression1 。在實(shí)現(xiàn)中,斷言是一個(gè)包含布爾表達(dá)式的語(yǔ)句,在執(zhí)行這個(gè)語(yǔ)句時(shí)假定該表達(dá)式為 true;如果表達(dá)式計(jì)算為 false,那么系統(tǒng)會(huì)報(bào)告一個(gè)Assertionerror。assertion 檢查通常在開(kāi)發(fā)和測(cè)試時(shí)開(kāi)啟。6什么時(shí)候用 assert?【中等難度】
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1