版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、一、填空題1 Java中一個類可以有 一 個父類。2 如果一個類的聲明中沒有使用extends關(guān)鍵字,這個類被系統(tǒng)默認(rèn)為是 Object 類的子類。3 子類自然地繼承了其父類中不是 private 的成員變量作為自己的成員變量。4 當(dāng)子類中定義的成員變量和父類中的成員變量同名時,子類的成員變量 隱藏 了父類的成員變量。5 子類通過成員變量的隱藏和方法的 重寫 可以把父類的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。6 對于重寫或繼承的方法,Java運(yùn)行時系統(tǒng)根據(jù)調(diào)用方法的 實(shí)例 的類型來選擇調(diào)用哪個方法。7 對于子類創(chuàng)建的一個對象,如果子類重寫了父類的方法,則運(yùn)行時系統(tǒng)調(diào)用 子類 的方法。8 對于子類創(chuàng)
2、建的一個對象,如果子類繼承了父類的方法,未重寫,則運(yùn)行時調(diào)用_父類_的方法。9 在Java語言中多態(tài)性體現(xiàn)在由方法重載實(shí)現(xiàn)的靜態(tài)多態(tài)性和 重寫 實(shí)現(xiàn)的動態(tài)多態(tài)性。10 final 類不能被繼承,即不能有子類。11 abstract 類不能創(chuàng)建對象,必須產(chǎn)生其子類,由子類創(chuàng)建對象。12 如果一個方法被修飾為 final 方法,則這個方法不能被重寫。13 對于 abstract 方法,只允許聲明,而不允許實(shí)現(xiàn)。14 如果一個方法被修飾為final方法,則這個方法不能 被重寫 。15 如果一個類是一個abstract類的子類,它必須具體實(shí)現(xiàn) 父類 的abstract方法。16 局部變量的名字與成員變
3、量的名字相同,若想在該方法內(nèi)使用成員變量,必須使用關(guān)鍵字 this 。17 在關(guān)鍵字中能代表當(dāng)前類或?qū)ο蟊旧淼氖?this 。18 如果在子類中想使用被子類隱藏的父類的成員變量或方法可以使用關(guān)鍵字 super 。19 子類如果想用父類的構(gòu)造方法,必須在子類的構(gòu)造方法中使用,并且必須使用關(guān)鍵字 _super 來表示。20 如果在子類中想使用被子類隱藏了的父類成員變量或方法就可以使用關(guān)鍵字 super 。21 Java中為了克服 單繼承 的缺點(diǎn),使用了接口,一個類可以實(shí)現(xiàn)多個接口。22 接口 就是方法定義和常量值的集合。23 使用關(guān)鍵字 interface 來定義接口。24 接口定義包括接口的聲明
4、和 接口體 。25 一個類通過使用關(guān)鍵字 implements 聲明自己實(shí)現(xiàn)一個或多個接口。26 如果一個類實(shí)現(xiàn)了某個接口,那么這個類必須實(shí)現(xiàn)該接口的 所有方法 。27 接口中的方法被默認(rèn)的訪問權(quán)限是 public 。28 接口的定義包括 接口的聲明 和接口體。29 定義接口時,接口體中只進(jìn)行方法的聲明,不允許提供方法的 具體實(shí)現(xiàn) 。30 如果接口中的方法的返回類型不是void的,那么在類中實(shí)現(xiàn)該接口的方法時,方法體至少要有一個 return 語句。31 內(nèi)部類 指那些類定義代碼被置于其他類定義中的類。32 泛型 是Java SE5.0的新特性。33 創(chuàng)建對象常用的方法就是使用 new 運(yùn)算符
5、和類的構(gòu)造方法。34 把Java應(yīng)用程序中涉及到的類壓縮成一個 jar 文件。35 數(shù)組 是相同類型的數(shù)據(jù)按順序組成的一種引用數(shù)據(jù)類型。36 Java中定義數(shù)組后通過 數(shù)組名 加數(shù)組下標(biāo),來使用數(shù)組中的數(shù)據(jù)。37 Java中聲明數(shù)組包括數(shù)組的名字、數(shù)組包含的元素的 數(shù)據(jù)類型 。38 聲明數(shù)組 僅僅是給出了數(shù)組名字和元素的數(shù)據(jù)類型,要想真正的使用數(shù)組還必須為它分配內(nèi)存空間。39 一維數(shù)組通過下標(biāo)符訪問自己的元素,需要注意的是下標(biāo)從 0 開始。40 創(chuàng)建數(shù)組后,系統(tǒng)會給每一個數(shù)組元素一個默認(rèn)的值,如float型是 0 。41 聲明數(shù)組僅僅是給出了數(shù)組名字和元素的數(shù)據(jù)類型,要想真正地使用數(shù)組還必須為
6、它 分配內(nèi)存空間 。42 數(shù)組聲明后,必須使用 new 運(yùn)算符分配內(nèi)存空間。43 Java中使用java.lang包中的 String 類來創(chuàng)建一個字符串變量,因此字符串變量是類類型變量,是一個對象。44 創(chuàng)建一個字符串時,使用String類的 構(gòu)造方法 。45 String 類是不可變類,對象所包含的字符串內(nèi)容永遠(yuǎn)不會被改變。46 StringBuffer 類是可變類,對象所包含的字符串內(nèi)容可以被添加或修改。47 使用String類的 length() 方法可以獲取一個字符串的長度。48 可以使用String類的 startWith(String s) 方法判斷一個字符串的前綴是否是字符串s
7、。49 可以使用String類的 endsWith(String s) 方法判斷一個字符串的后綴是否是字符串s。50 可以使用String類的 equals(String s) 方法比較一字符串是否與字符串s相同。51 字符串調(diào)用 indexOf(String s) 方法從當(dāng)前字符串的頭開始檢索字符串s,并返回首次出現(xiàn)s 的位置。52 字符串調(diào)用indexOf方法檢索字符串s,并返回首次出現(xiàn)s 的位置。如果沒有檢索到字符串s,該方法返回的值是 +1 。53 一個字符串s 通過調(diào)用方法 trim() 得到一個字符串對象,該字符串對象是s 去掉前后空格后的字符串。54 java.lang 包中的I
8、nteger 類調(diào)用其類方法: parseInt 可以將“數(shù)字”格式的字符串,如“2387”,轉(zhuǎn)化為int 型數(shù)據(jù)。55 可以使用java.lang包中的 Integer 類將形如“2387”的字符串轉(zhuǎn)化為int型數(shù)據(jù)。56 可以使用java.lang包中的 Long 類將字符串轉(zhuǎn)化為long型數(shù)據(jù)。57 可以使用String類直接調(diào)用 valueOf 方法將數(shù)值轉(zhuǎn)化為字符串。58 StringBuffer類調(diào)用方法, toString() 返回緩沖區(qū)內(nèi)的字符串。59 Object類有一個public方法是 toString() ,一個對象通過調(diào)用該方法可以獲得該對象的字符串表示。60 Obj
9、ect 類是所有Java 類的最終祖先,如果一個類在聲明時沒有包含extends 關(guān)鍵詞,那么這個類直接繼承Object類。61 對于一個已經(jīng)不被任何引用變量引用的對象,當(dāng)垃圾回收器準(zhǔn)備回收該對象所占用的內(nèi)存時,將自動調(diào)用該對象的 finalize() 方法。62 每個Java 基本類型在java.lang 包中都有一個相應(yīng)的 包裝 類,把基本類型數(shù)據(jù)轉(zhuǎn)換為對象。63 在Java 集合中不能存放基本類型數(shù)據(jù),如果要存放數(shù)字,應(yīng)該使用 包裝類型 。64 Character 類和Boolean 類直接繼承Object 類,除此以外,其他包裝類都是 java.Number 的直接子類。65 包裝類都
10、覆蓋了Object 類的 toString() 方法,以字符串的形式返回包裝對象所表示的基本類型數(shù)據(jù)。66 所有的包裝類都是final 類型,因此不能創(chuàng)建它們的 子類 。67 Math 類提供了許多用于數(shù)學(xué)運(yùn)算的靜態(tài)方法。68 Math 類是 final 類型的,因此不能有子類。69 Random 類提供了一系列用于生成隨機(jī)數(shù)的方法。70 Date 類以毫秒數(shù)來表示特定的日期。71 java.text.DateFormat 抽象類用于定制日期的格式, 它有一個具體子類為 SimpleDateFormat 。72 FBigDecimal 類能夠進(jìn)行浮點(diǎn)數(shù)的精確加法、減法和乘法運(yùn)算,對于浮點(diǎn)數(shù)的除
11、法運(yùn)算,可以滿足用戶指定的精度。73 異常處理 方法是一種非常有用的輔助性程序設(shè)計(jì)方法。采用這種方法可以使得在程序設(shè)計(jì)時將程序的正常流程與錯誤處理分開,有利于代碼的編寫和維護(hù)。74 按異常在編譯時是否被檢測來分,異??梢苑譃閮纱箢悾菏軝z異常與 非受檢異常 。75 程序可以處理的異常對應(yīng)的類是 Exception 及其子類。76 拋出異??梢岳?try catch 語句。77 處理異常的方式有兩種: 捕獲異常 方式與轉(zhuǎn)移異常方式。78 捕捉異常方式是通過 try catch 結(jié)構(gòu)處理異常。79 在try-catch-finally 結(jié)構(gòu)中, finally 語句塊一般總是會被執(zhí)行,不管有沒有異
12、常產(chǎn)生。80 異常處理流程中,其中 try 代碼塊包含了可能發(fā)生異常的程序代碼。81 異常處理流程中,其中 catch 代碼快緊跟在try 代碼塊后面,用來捕獲并處理異常。82 異常處理流程中,其中 finally 代碼塊用于釋放被占用的相關(guān)資源。83 對于程序中可能出現(xiàn)的受檢查異常,要么用trycatch 語句捕獲并處理它,要么用 _throw_語句拋出它,Java 編譯器會對此做檢查。二、問題題1、用代碼表示A類關(guān)聯(lián)B類的情況。解析:一個Java應(yīng)用中不可能只有一個類,所以了解類之間的關(guān)系對程序員來說非常重要。關(guān)聯(lián)關(guān)系是最常用的一種關(guān)系,如果說A關(guān)聯(lián)B,那么就是B作為A的屬性存在。關(guān)聯(lián)關(guān)系
13、是一種復(fù)用的策略,即A關(guān)聯(lián)B的時候,A可以復(fù)用B的行為。參考答案:Class A Private B b;Public void setB(B b)This.b=b;2、請說明Java語言中數(shù)組的基本概念,數(shù)組的作用,以及數(shù)組的聲明創(chuàng)建方式。解析:數(shù)組時任何一門語言里都常用的類型,Java語言也不例外。程序員了解數(shù)組,不能僅僅從語法上了解,而應(yīng)該深入理解數(shù)組的作用。數(shù)組可
14、以用來存儲類型相同的元素,作為一種數(shù)據(jù)容器使用。和數(shù)組類似的概念是集合,也能作為數(shù)據(jù)容器使用。參考答案:數(shù)組時相同元素的集合,作為數(shù)據(jù)容器使用。聲明創(chuàng)建一個int型數(shù)組,如下所示:intx=new int3;其中3是數(shù)組的長度,該數(shù)組能夠存儲3個int型變量。3、使用代碼,創(chuàng)建一個長度為5的String型數(shù)組,并使用增強(qiáng)for循環(huán)迭代數(shù)組打印出數(shù)組中的元素。解析:增強(qiáng)for循環(huán)是JDK5增加的特性,可以方便地遍歷數(shù)組或集合。程序員需要了解的是,如果JDK版本低于5.0,則不支持這個功能。另外,并不是說有了增強(qiáng)for循環(huán)后,傳統(tǒng)的for循環(huán)就不被使用,增強(qiáng)for循環(huán)只能用來方便地遍歷數(shù)
15、組和集合,其他情況下還要使用傳統(tǒng)的for循環(huán)。參考答案: String sArray = new String5;For(String s:sArray) System.out.println(s);4、說明Arrays類的作用。解析:在實(shí)際工作中,常常需要對數(shù)組中的元素進(jìn)行處理,例如排序等。初級程序員往往選擇自己編寫算法實(shí)現(xiàn)。實(shí)際上APV中提供了Arrays類,該類中定義了很多和數(shù)組有關(guān)的工具方法,能夠方便地處理數(shù)組,是程序員必須掌握的類。參考答案:A
16、rrays類是java.util包中的一個類,類中所有的方法都是static方法,這些方法都是數(shù)組對象的工具方法,能夠?qū)?shù)組進(jìn)行處理,如sort方法可以對數(shù)組元素進(jìn)行排序5、請使用簡單代碼展示A類依賴B類的含義。解析:對于程序員來說,了解類和類之間的關(guān)系非常必要。依賴關(guān)系指的是一種瞬間的關(guān)系。如果A依賴B,一般指的是A類的某個行為,需要B類對象作為參數(shù)。參考答案:Class APublic void f(B b)6、請說明依賴關(guān)系和關(guān)聯(lián)關(guān)系的區(qū)別。解析:關(guān)聯(lián)關(guān)系和依賴關(guān)系是非常常見的兩種關(guān)系,二者的區(qū)別也很明顯,程序員了解二者的區(qū)別能夠更深入的理解面向?qū)?/p>
17、象的思想。參考答案:依賴關(guān)系是一種瞬時關(guān)系,A依賴B,指的是A的某個行為的參數(shù)是B的類型,也就是說,A要想實(shí)現(xiàn)這個行為,必須依賴B的實(shí)例,A關(guān)聯(lián)B,是一種長久的關(guān)系。?的是B作為A的屬性存在,只要實(shí)例化一個A的對象,就會為這個A的對象實(shí)例化一個B的對象,作為它的屬性使用,可以在A中任何需要使用B的地方使用B。7.繼承有什么作用,Java語言中的繼承有什么特點(diǎn)?解析:繼承是面向?qū)ο笳Z言的一大特征,主要作用是重復(fù)使用,子類通過繼承父類,能夠重復(fù)使用父類的屬性和方法。指的注意的是,有兩個策略都可使實(shí)現(xiàn)重復(fù)使用,一個是關(guān)聯(lián),一個是繼承,實(shí)際編程中,關(guān)聯(lián)用的更多。因?yàn)樽宇惱^承父類后,相當(dāng)于父類中的細(xì)節(jié)將
18、暴露給子類。初級程序員一定不要隨意使用繼承,避免濫用繼承。 參考答案:繼承主要為了能夠重復(fù)使用父類中的成員。Java語言中的繼承是單繼承,也就是說一個類最多只能繼承一個父類。8、什么是方法覆蓋(override)?并說明方法覆蓋與方法重載(overioad)的區(qū)別。 解析:方法覆蓋是一個非常重要的概念,是多態(tài)性的一個體現(xiàn)。方法覆蓋發(fā)生再去愛繼承關(guān)系中,當(dāng)子類需要修改從父類繼承到某個方法的方法體時,就可以聲明一個父類同名同參數(shù)同返回值的方法,這樣就對父類中的那個方法進(jìn)行了覆蓋,子類對象調(diào)用該方法時將自動綁定到子類中的方法。中很多
19、類中都進(jìn)行了方法覆蓋,如String類中的toString方法,就覆蓋了父類Object中的toString方法。參考答案:覆蓋是發(fā)生在繼承關(guān)系的子類中,當(dāng)子類要修改從父類繼承的某個方法的方法體時,就可以在子類中聲明一個與父類同名、同參數(shù)并且同返回值類型的方法,這就是方法覆蓋。而重載與繼承沒有關(guān)系,指的是在一個類中可以同時聲明多個同名但不同參數(shù)的方法,稱為重載。9、請說明什么是抽象類?抽象類有什么作用?解析:初級程序員往往不需要自己創(chuàng)建抽象類,但是必須了解抽象類的概念,并且會使用抽象類。抽象類往往是設(shè)計(jì)階段的概念,用來定義多個子類的模板,一些具體的實(shí)現(xiàn)可以在子類中進(jìn)行。初級程序員往往需要會創(chuàng)建
20、子類繼承抽象類,實(shí)現(xiàn)抽象類中的方法。在API中,抽象類比比皆是。 參考答案:抽象類是不能實(shí)例化的類,使用abstract修飾。抽象類往往用來做父類使用,定義一些子類的共同屬性或行為。10、請說明抽象方法的含義,并說明抽象類與抽象方法的關(guān)系。解析:抽象方法都是在抽象類中定義的,是用來定義子類what to do的策略,而具體的how to do都在子類中實(shí)現(xiàn)。參考答案:抽象方法是沒有辦法體的方法,使用abstract修飾。抽象類中不一定有抽象方法,但是有抽象方法的類一定是抽象類。11、super關(guān)鍵字的兩種用法。
21、;解析:使用一些IDE生成代碼時,常常會在構(gòu)造方法中見到super這個關(guān)鍵字。顧名思義,super是和父類有關(guān)的一個關(guān)鍵字,熟悉super的用法對熟練掌握繼承很有必要。參考答案:如super():表示調(diào)用父類中的每一參考的構(gòu)造方法:又如super(10);表示調(diào)用父類中的具有一個整型參數(shù)的構(gòu)造方法。第二種用法是在子類中調(diào)用父類中的成員,如super.f();意思是調(diào)用父類中的f()方法。12、final類與final方法有什么作用?解析:final修飾符是一個用途非常廣泛的修飾符,可以修飾類,方法,以及屬性。參考答案:final類是不能夠被繼承的類,稱為終極類,如String類就是final類
22、,不能有子類。final修飾方法后,是終極方法,不能被子類覆蓋,但是可以被子類繼承使用。13.什么是多態(tài)函數(shù)?多態(tài)函數(shù)有什么用?解析:多態(tài)性是面向?qū)ο笳Z言的的一大特征,重載,覆蓋,多態(tài)參數(shù)是多態(tài)性的一種表現(xiàn)形式。多態(tài)參數(shù)處處可見,例如某方法f(Object o),這個方法的參數(shù)類型是Object,使用該方法時,只要傳遞給f的單數(shù)類型是Object即可。也就是說,Object類的任意參數(shù)可以傳遞給f方法。這就是多態(tài)參數(shù)。意思是對外形式都一樣,都是Object,具體實(shí)現(xiàn)可以是這個類型的任意子類,這就使得該方法比較靈活,Object類即使有了新的子類,卻不需要修改,就能直接作用到那個子類。
23、了解多態(tài)參數(shù)的含義和使用,對于Java的使用特別關(guān)鍵。參考答案:多態(tài)函數(shù)就是參數(shù)的類型是某個父類類型,具體為這個參數(shù)賦值的不同以使用該父類的任意子類的對象。使用多態(tài)參數(shù),可以使程序的擴(kuò)展性更好,即使%的子類方法不需要任何修改,就能接受子類類型進(jìn)行處理。14.Object類有什么特點(diǎn)?解析:Object類是一個非常重要的類,是所有類的父類,包括數(shù)組在內(nèi),也就是對一個Java類,不管是API中定義的,還是自定義的類,都直接或間接的繼承了Object類。所以,如果有一個方法f(Object o),那么可以傳遞給這個方法任意一個類的對象,包括%。因?yàn)樗袑ο蠖伎梢哉f是Object類型。參考答
24、案:Object類是多有類的直接或間接的父類。15.Object類中的toString方法有什么用?解析:Object類是所有類的父類,所以O(shè)bject類中的方法是所有類都默認(rèn)具備的。類中的toString 方法可以將任意一個對象作為字符串返回,默認(rèn)的格式是“類名內(nèi)地%”API中很多類已經(jīng)覆蓋了這個方法,將其返回值的格式進(jìn)行了自定義,如String類中的方法已經(jīng)覆蓋為返回字符串的字符序列。toString 方法在很多場合被自動調(diào)用,例如%一個對象時,就自動調(diào)用該對象的toString 方法,如果需要修改返回字符串的格式,%另外類中的覆蓋toString方法。參考答
25、案:toString方法可以把對象作為字符串返回。16.Object類中的equals方法和hashCode 方法。解析:在Object類中,equals方法比較對象的引用值,也就是只有物理上是同一對象的兩個引用,在使用equals方法返回true。hashCode方法返回一個對象的內(nèi)在地址的十六進(jìn)制值。由于Object類是所有類的父類,所以任意類中都擁有這兩個方法,并都可以進(jìn)行覆蓋。尤其是操作Set,Map對象時集合元素類的equals方法和hashCode方法非常必要,因?yàn)镾et和Map判斷元素是否重%是依靠這兩個方法進(jìn)行。一般的原則是:如果存在X和Y兩個對象,調(diào)用X.equal
26、s(Y)相同時,那么調(diào)用hashCode方法返回值也應(yīng)該相同;如果X.equals(Y)返回false時,那么調(diào)用hashCode方法返回值可能相同,也可能不同。值得注意的是,只要你覆蓋了equals方法,一定%則覆蓋hashCode 方法。在實(shí)際工作中,很多IDE環(huán)境都支持覆蓋equals和hashCode 方法。參考答案:Oject類中的equals方法用來比較兩個引用值,hashCode用來返回引用的內(nèi)地址的十六進(jìn)制數(shù)值。在Set以及Map集合中,判斷兩個元素是否重復(fù)時,往往需要使用這兩個方法。這兩個方法往往被子類覆蓋,覆蓋的規(guī)則是:如果存在x和y兩個對象,調(diào)用x.e
27、quals(y)返回true時,那么調(diào)用hashCode方法的返回值也該相同;如果x.equals(y)返回false時,那么調(diào)用hashCode方法返回的值可能相同,也可能不同。17.接口有什么特點(diǎn),與抽象類有什么區(qū)別?解析:接近歐的概念是一個設(shè)計(jì)層面的概念,初級程序員往往不會自己定義接口,但是會使用接口,理解接口的概念非常必要。接口定義了實(shí)現(xiàn)類的規(guī)范,即what to do的部分,所有實(shí)現(xiàn)類必須按照這個規(guī)范進(jìn)行實(shí)現(xiàn)。參考答案:接口的特點(diǎn)是不能定義變量,而且所有方法都是抽象方法。而抽象類中可以有變量,也不強(qiáng)制必須有抽象方法。18.類繼承父類與類實(shí)現(xiàn)接口,有什么區(qū)別?解析:
28、類繼承父類與類實(shí)現(xiàn)接口,本質(zhì)上其實(shí)是一樣的。都是將父類或者接口作為模板,在這個模板上進(jìn)行擴(kuò)展或者重寫。程序員在實(shí)際編程中,常常需要繼承父類或者實(shí)現(xiàn)接口。參考答案:類繼承父類只是單繼承,也就是一個子類最多只有一個父類;而類實(shí)現(xiàn)接口可以多實(shí)現(xiàn),就是一個子類可以同時實(shí)現(xiàn)多個接口,并覆蓋所有接口中的所有抽象方法。19.Comparable接口有什么作用解析:comparable接口是在實(shí)際編程中常常使用的接口,該接口定義了comareTo(Object o)方法,用來定義對象的比較邏輯。這個接口常常在其他API中會強(qiáng)制使用,例如Arrays類的sort(Object)方法,就強(qiáng)制數(shù)組元素必須
29、實(shí)現(xiàn)Comparable接口,與這個接口類似的 另外一個接口是Comparator。參考答案:Comparable接口定義了compareTo(Object o)方法,可以用來實(shí)現(xiàn)對象的比較邏輯,這個接口常常在其他API中強(qiáng)制使用,用來規(guī)范對象的比較邏輯第二部分 異常處理1 .什么是異常?異常和錯誤有什么區(qū)別?解析:異常處理是面向?qū)ο笳Z言比起過程式語言的一大改進(jìn)。對于Java程序員來說,必須了解異常處理,才能順利編程。參考答案:異常是一些不正常的事件,能夠中斷程序的正常執(zhí)行例如才除0計(jì)算就是異常。和錯誤不同,異常是可以被處理的,而錯誤往往是不能夠處理的,如內(nèi)存溢出
30、錯誤。2 .nullPointException是什么異常?什么情況發(fā)生該異常?解析:程序員必須能夠了解常見的異常的發(fā)生原因,并能夠處理。NullPointerException就是特別常見的運(yùn)行期異常。參考答案:NullPointerExcepiton是空指針異常,當(dāng)一個引用沒喲被賦值,就是一null值如果這種情況下, 使用該引用調(diào)用其屬性或者方法, 就會發(fā)生NullPointerException異常。3.說明try/catch/finally語句塊的作用解析:編寫Java程序,避免不了需要處理異常。Java中處理異常使用try/catch/finally來實(shí)
31、現(xiàn)。尤其其中的finally語句非常值得程序員關(guān)注,可以用來執(zhí)行必須實(shí)現(xiàn)的功能,例如數(shù)據(jù)庫的鏈接等操作。參考答案:try語句塊用來包含可能發(fā)生異常的語句,catch塊用來捕獲異常,finally用來包含必須執(zhí)行的語句。4如何使用語句拋出異常,拋出異常后如何處理?解析:某些業(yè)務(wù)邏輯的非正常事件流,可以使用拋出異常來標(biāo)記。拋出的異常必須是有意義的異常類型,建議不要使用API中的標(biāo)準(zhǔn)異常類,避免混淆。參考答案:使用throw語句就可以拋出異常,如throw new XXXException()。拋出異常時一般情況下會在聲明方法處使用throws聲明該類型的異常,調(diào)用該
32、方法是編譯器將提示異常。5. throws 關(guān)鍵字和 throw 關(guān)鍵字有什么區(qū)別和聯(lián)系?解析:throws和throw是異常處理時兩個常見的關(guān)鍵字,初級程序員常常容易正確理解throw和throws的作用和區(qū)別,說明已經(jīng)能比較深入理解異常處理。Throw用來拋出異常,如果執(zhí)行了throw語句,程序?qū)l(fā)生異常,進(jìn)入到異常處理機(jī)制。Throws用來聲明異常,說明這個方法可能會發(fā)生某些類型的異常,那么編譯器將強(qiáng)制在調(diào)用這個方法的時候處理異常。API中的很多方法都使用了throws聲明了異常,所以使用這些方法時編譯器會提示需要處理異常。參考答案:throw用來
33、在方法體內(nèi)拋出異常,而throws用來在方法聲明處聲明異常。這兩個關(guān)鍵字有著一定的聯(lián)系。如果一個方法中使用了throw關(guān)鍵字拋出了異常,那么要么立即用try/catch語句進(jìn)行捕獲,要么就是用throws進(jìn)行聲明,否則將出現(xiàn)編譯錯誤。然而,并不是只有使用了throw關(guān)鍵字之后才能使用throws關(guān)鍵字,語法上來說,任何一個方法都可以直接使用throws關(guān)鍵字,抽象方法也可以使用。6. 什么是自定義異常類?為什么要自定義異常類?解析:企業(yè)應(yīng)用中,往往會自定義一系列的異常類,標(biāo)記一些非正常的事件流。然而,這些自定義異常類不會讓每個程序員都自定義,而是會由專人定義,分發(fā)給程序員使用。參考答
34、案:自定義異常類區(qū)別于API中的標(biāo)準(zhǔn)異常類,指的是開發(fā)人員自己創(chuàng)建的異常類。只要繼承API中某個異常類就可以自定義一個異常類,常常集成Exception類。自定義異常類主要是為了標(biāo)記業(yè)務(wù)邏輯中非正常事件流,避免與API中的標(biāo)準(zhǔn)異?;煜?。第四部分核心API1. 請畫出Java集合框架的主要接口和類的繼承關(guān)系。解析:集合石非常重要的類型, 也是企業(yè)考察員工編程能力時常常關(guān)注的知識點(diǎn)。程序員應(yīng)該熟悉Java集合框架的主要繼承關(guān)系, 掌握常用集合類的用法和特點(diǎn)2. Collection接口和Map接口分別定義了什么集合類型?有什么區(qū)別?解
35、析:Collection和Map是Java集合框架中兩個基本集合類型,要區(qū)別不同的集合首先要從Collection和Map開始。參考答案:Collection接口是傳統(tǒng)的集合接口,可以把單個對象存儲進(jìn)來。而Map接口是映射接口,存儲的是鍵值對。3. 用簡單代碼演示創(chuàng)建一個泛型類為Customer類的List對象,并使用增強(qiáng)for循環(huán)迭代集合。解析:JDK5以后,集合框架中的接口和類都是泛型類及泛型接口,并可以使用增強(qiáng)for循環(huán)迭代集合。程序員需要確認(rèn)開發(fā)平臺的JDK版本,如果低于5.0則不能使用這些功能。參考答案: ArrayList<Customer&g
36、t; list = new ArrayList<Customer>();For(Customer c : list) 4. List和Set集合有什么區(qū)別?解析:List和Set是Collection接口的兩個子接口,也是使用最多的兩種集合類型。程序員應(yīng)該熟悉這兩個接口的基本特征,能夠更準(zhǔn)確地選擇正確的集合類型。參考答案:List實(shí)現(xiàn)了列表類型的集合,List中的元素是有序(ordered)的,每個元素根據(jù)放入集合的順序而對應(yīng)一個索引值, 可以根據(jù)這個索引值返回集合原宿。而Set實(shí)現(xiàn)
37、了不重復(fù)元素集合,即Set中的元素不能夠重復(fù),重復(fù)的元素將無法添加到集合中。5. List接口有哪幾個實(shí)現(xiàn)類?分別說明其特征解析:List是用的較多的集合類型,List是一個接口,具體使用List集合類型時,需要使用時實(shí)現(xiàn)類。List接口的每個實(shí)現(xiàn)類也都實(shí)現(xiàn)了不同的數(shù)據(jù)結(jié)構(gòu),各自具有不同的特征,其中最常用的是List實(shí)現(xiàn)類。參考答案:List接口中有以下幾個常用實(shí)現(xiàn)1 ArrayList:實(shí)現(xiàn)了動態(tài)數(shù)組的特征。2 LinkedList: 實(shí)現(xiàn)了鏈表的數(shù)據(jù)結(jié)構(gòu),LinkedList也可以用作棧或者隊(duì)列。3 Vector:向量。4
38、60;ArrayList Vector類的功能 ArrayList都可以實(shí)現(xiàn),區(qū)別在于Vector是現(xiàn)行同步的。6. Collectioin 和Collections有什么區(qū)別?解析:很多初級程序員對Collectioni和Collections容易混淆,二者的名字非常類似,本義卻大大不同,Collections類與Arrays類非常類似,都是工具類,程序員應(yīng)該熟悉掌握。參考答案:Collection是一個接口的名字,定義了集合類型的共同特征。而Collections是一個類的名字,是集合類型的工具類,類中定義了大量的靜態(tài)方法,能
39、夠操作及和對象。7. 如何將一個Collection轉(zhuǎn)換成數(shù)組?解析:集合和數(shù)組有很多共同的地方,二者都是作為數(shù)據(jù)容器使用, 用來持有數(shù)據(jù)。數(shù)組的長度是固定的,集合的長度卻可以動態(tài)擴(kuò)展,數(shù)組由于可以直接通過索引操作其元素,所以性能和效率較高。實(shí)際應(yīng)用中,可能使用及合作為臨時變量持有數(shù)據(jù),卻將處理結(jié)果轉(zhuǎn)換成數(shù)組返回。參考答案:Collection接口中定義了toArray(T a)方法來將集合轉(zhuǎn)換為數(shù)組,其中T是泛型類型。8、 集合的作用?集合是可以存儲一批類型不同的對象,針對集合的實(shí)現(xiàn)類有很多,作用都是一樣的,即存儲、傳輸數(shù)據(jù),但存儲的數(shù)據(jù)結(jié)構(gòu)不一樣,
40、其速度、安全性也不一樣。9 、HashMap和TreeMap在性能上有什么樣的差別呢?你比較傾向于使用哪一個?一個平衡樹的性能是O(logn)。Java里的TreeMap用一個紅黑樹來保證key/value的排序。紅黑樹是平衡二叉樹。保證二叉樹的平衡性,使得插入,刪除和查找都比較快,時間復(fù)雜度都是O(log n)。不過它沒有HashMap快,HashMap的時間復(fù)雜度是O(1),但是TreeMap的優(yōu)點(diǎn)在于它里面鍵值是排過序的,這樣就提供了一些其他的很有用的功能。 使用無序的HashSet和HashMap,還是使用有序的TreeSet和TreeMap,主要取決于你的實(shí)際使用
41、場景,一定程度上還和數(shù)據(jù)的大小以及運(yùn)行環(huán)境有關(guān)。比較實(shí)際的一個原因是,如果插入和更新都比較頻繁的話,那么保證元素的有序可以提高快速和頻繁查找的性能。如果對于排序操作(例如產(chǎn)生一個報表合作者運(yùn)行一個批處理程序)的要求不是很頻繁的話,那么把數(shù)據(jù)以無序的方式存儲,然后在需要排序的時候用Collections.sort()來進(jìn)行排序,會比用有序的方式來存儲可能會更加高效。這個只是一種可選的方式,沒人能給你一個確切的答案。即使是復(fù)雜度的理論,例如O(n),成立的前提也是在n足夠大的情況下。只要在n足夠小的情況下,就算是O(n)的算法也可能會比O(log n)的算法更加高效。另外,一個算法可能在AMD處理器上的速度比在Intel處理器上快。如果你的系統(tǒng)有交換區(qū)的話,那么你還要考慮磁盤的性能。唯一可以確定的性能測試途徑是用大小合適的數(shù)據(jù)來測試和衡量程序的性能和內(nèi)存使用量。在你所選擇的硬件上來測試這兩種指標(biāo),是最合適的方法。10、 什么是Iterator迭代器是一種設(shè)計(jì)模式,它是一個對象,它可以遍歷并選擇序列中的對象,而開發(fā)人員不需要了解該序列的底層結(jié)構(gòu)。迭代器通常被稱為“輕量級”對象,因?yàn)閯?chuàng)建它的代價小。 Java中的Iterator功能比較簡單,并且只能單向移動:
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年國際汽車銷售代理合同
- 2024年度保險代理協(xié)議
- 2024年害蟲防治定期服務(wù)協(xié)議
- 2024區(qū)塊鏈技術(shù)應(yīng)用與合作合同
- 2024年專業(yè)同聲傳譯合作協(xié)議
- 2024版蔬菜采購合同書文書
- 2024區(qū)塊鏈技術(shù)研發(fā)公司與金融機(jī)構(gòu)之間的數(shù)字貨幣發(fā)行與交易合同
- 2024民間私人貸款合同范本個人民間貸款合同范本
- 2024年個性化金融服務(wù)系統(tǒng)建設(shè)合同
- 2024年度裝飾工程grc材料采購合同
- 《城市軌道交通橋梁養(yǎng)護(hù)技術(shù)規(guī)范》
- 《水土保持技術(shù)》課件-項(xiàng)目八 攔渣措施
- 機(jī)動車檢測站違規(guī)檢驗(yàn)整改報告
- 2024年建筑電工復(fù)審考試題庫附答案
- 2024年4月自考04737C++程序設(shè)計(jì)試題及答案含評分參考
- 睡眠醫(yī)學(xué)智慧樹知到期末考試答案章節(jié)答案2024年廣州醫(yī)科大學(xué)
- GB/T 17259-2024機(jī)動車用液化石油氣鋼瓶
- 國開(河北)2024年《中外政治思想史》形成性考核1-4答案
- 床邊護(hù)理帶教體會
- 2024年社區(qū)工作者考試必背1000題題庫及必背答案
- MOOC 微型計(jì)算機(jī)原理與接口技術(shù)-南京郵電大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論