![面向對象筆試題(2)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/11243603-bea8-4ee6-9608-c5f0f2380c91/11243603-bea8-4ee6-9608-c5f0f2380c911.gif)
![面向對象筆試題(2)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/11243603-bea8-4ee6-9608-c5f0f2380c91/11243603-bea8-4ee6-9608-c5f0f2380c912.gif)
![面向對象筆試題(2)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/11243603-bea8-4ee6-9608-c5f0f2380c91/11243603-bea8-4ee6-9608-c5f0f2380c913.gif)
![面向對象筆試題(2)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/11243603-bea8-4ee6-9608-c5f0f2380c91/11243603-bea8-4ee6-9608-c5f0f2380c914.gif)
![面向對象筆試題(2)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/11243603-bea8-4ee6-9608-c5f0f2380c91/11243603-bea8-4ee6-9608-c5f0f2380c915.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、填空題1 Java中一個類可以有 一 個父類。2 如果一個類的聲明中沒有使用extends關鍵字,這個類被系統默認為是 Object 類的子類。3 子類自然地繼承了其父類中不是 private 的成員變量作為自己的成員變量。4 當子類中定義的成員變量和父類中的成員變量同名時,子類的成員變量 隱藏 了父類的成員變量。5 子類通過成員變量的隱藏和方法的 重寫 可以把父類的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。6 對于重寫或繼承的方法,Java運行時系統根據調用方法的 實例 的類型來選擇調用哪個方法。7 對于子類創(chuàng)建的一個對象,如果子類重寫了父類的方法,則運行時系統調用 子類 的方法。8 對于子類創(chuàng)
2、建的一個對象,如果子類繼承了父類的方法,未重寫,則運行時調用_父類_的方法。9 在Java語言中多態(tài)性體現在由方法重載實現的靜態(tài)多態(tài)性和 重寫 實現的動態(tài)多態(tài)性。10 final 類不能被繼承,即不能有子類。11 abstract 類不能創(chuàng)建對象,必須產生其子類,由子類創(chuàng)建對象。12 如果一個方法被修飾為 final 方法,則這個方法不能被重寫。13 對于 abstract 方法,只允許聲明,而不允許實現。14 如果一個方法被修飾為final方法,則這個方法不能 被重寫 。15 如果一個類是一個abstract類的子類,它必須具體實現 父類 的abstract方法。16 局部變量的名字與成員變
3、量的名字相同,若想在該方法內使用成員變量,必須使用關鍵字 this 。17 在關鍵字中能代表當前類或對象本身的是 this 。18 如果在子類中想使用被子類隱藏的父類的成員變量或方法可以使用關鍵字 super 。19 子類如果想用父類的構造方法,必須在子類的構造方法中使用,并且必須使用關鍵字 _super 來表示。20 如果在子類中想使用被子類隱藏了的父類成員變量或方法就可以使用關鍵字 super 。21 Java中為了克服 單繼承 的缺點,使用了接口,一個類可以實現多個接口。22 接口 就是方法定義和常量值的集合。23 使用關鍵字 interface 來定義接口。24 接口定義包括接口的聲明
4、和 接口體 。25 一個類通過使用關鍵字 implements 聲明自己實現一個或多個接口。26 如果一個類實現了某個接口,那么這個類必須實現該接口的 所有方法 。27 接口中的方法被默認的訪問權限是 public 。28 接口的定義包括 接口的聲明 和接口體。29 定義接口時,接口體中只進行方法的聲明,不允許提供方法的 具體實現 。30 如果接口中的方法的返回類型不是void的,那么在類中實現該接口的方法時,方法體至少要有一個 return 語句。31 內部類 指那些類定義代碼被置于其他類定義中的類。32 泛型 是Java SE5.0的新特性。33 創(chuàng)建對象常用的方法就是使用 new 運算符
5、和類的構造方法。34 把Java應用程序中涉及到的類壓縮成一個 jar 文件。35 數組 是相同類型的數據按順序組成的一種引用數據類型。36 Java中定義數組后通過 數組名 加數組下標,來使用數組中的數據。37 Java中聲明數組包括數組的名字、數組包含的元素的 數據類型 。38 聲明數組 僅僅是給出了數組名字和元素的數據類型,要想真正的使用數組還必須為它分配內存空間。39 一維數組通過下標符訪問自己的元素,需要注意的是下標從 0 開始。40 創(chuàng)建數組后,系統會給每一個數組元素一個默認的值,如float型是 0 。41 聲明數組僅僅是給出了數組名字和元素的數據類型,要想真正地使用數組還必須為
6、它 分配內存空間 。42 數組聲明后,必須使用 new 運算符分配內存空間。43 Java中使用java.lang包中的 String 類來創(chuàng)建一個字符串變量,因此字符串變量是類類型變量,是一個對象。44 創(chuàng)建一個字符串時,使用String類的 構造方法 。45 String 類是不可變類,對象所包含的字符串內容永遠不會被改變。46 StringBuffer 類是可變類,對象所包含的字符串內容可以被添加或修改。47 使用String類的 length() 方法可以獲取一個字符串的長度。48 可以使用String類的 startWith(String s) 方法判斷一個字符串的前綴是否是字符串s
7、。49 可以使用String類的 endsWith(String s) 方法判斷一個字符串的后綴是否是字符串s。50 可以使用String類的 equals(String s) 方法比較一字符串是否與字符串s相同。51 字符串調用 indexOf(String s) 方法從當前字符串的頭開始檢索字符串s,并返回首次出現s 的位置。52 字符串調用indexOf方法檢索字符串s,并返回首次出現s 的位置。如果沒有檢索到字符串s,該方法返回的值是 +1 。53 一個字符串s 通過調用方法 trim() 得到一個字符串對象,該字符串對象是s 去掉前后空格后的字符串。54 java.lang 包中的I
8、nteger 類調用其類方法: parseInt 可以將“數字”格式的字符串,如“2387”,轉化為int 型數據。55 可以使用java.lang包中的 Integer 類將形如“2387”的字符串轉化為int型數據。56 可以使用java.lang包中的 Long 類將字符串轉化為long型數據。57 可以使用String類直接調用 valueOf 方法將數值轉化為字符串。58 StringBuffer類調用方法, toString() 返回緩沖區(qū)內的字符串。59 Object類有一個public方法是 toString() ,一個對象通過調用該方法可以獲得該對象的字符串表示。60 Obj
9、ect 類是所有Java 類的最終祖先,如果一個類在聲明時沒有包含extends 關鍵詞,那么這個類直接繼承Object類。61 對于一個已經不被任何引用變量引用的對象,當垃圾回收器準備回收該對象所占用的內存時,將自動調用該對象的 finalize() 方法。62 每個Java 基本類型在java.lang 包中都有一個相應的 包裝 類,把基本類型數據轉換為對象。63 在Java 集合中不能存放基本類型數據,如果要存放數字,應該使用 包裝類型 。64 Character 類和Boolean 類直接繼承Object 類,除此以外,其他包裝類都是 java.Number 的直接子類。65 包裝類都
10、覆蓋了Object 類的 toString() 方法,以字符串的形式返回包裝對象所表示的基本類型數據。66 所有的包裝類都是final 類型,因此不能創(chuàng)建它們的 子類 。67 Math 類提供了許多用于數學運算的靜態(tài)方法。68 Math 類是 final 類型的,因此不能有子類。69 Random 類提供了一系列用于生成隨機數的方法。70 Date 類以毫秒數來表示特定的日期。71 java.text.DateFormat 抽象類用于定制日期的格式, 它有一個具體子類為 SimpleDateFormat 。72 FBigDecimal 類能夠進行浮點數的精確加法、減法和乘法運算,對于浮點數的除
11、法運算,可以滿足用戶指定的精度。73 異常處理 方法是一種非常有用的輔助性程序設計方法。采用這種方法可以使得在程序設計時將程序的正常流程與錯誤處理分開,有利于代碼的編寫和維護。74 按異常在編譯時是否被檢測來分,異常可以分為兩大類:受檢異常與 非受檢異常 。75 程序可以處理的異常對應的類是 Exception 及其子類。76 拋出異常可以利用 try catch 語句。77 處理異常的方式有兩種: 捕獲異常 方式與轉移異常方式。78 捕捉異常方式是通過 try catch 結構處理異常。79 在try-catch-finally 結構中, finally 語句塊一般總是會被執(zhí)行,不管有沒有異
12、常產生。80 異常處理流程中,其中 try 代碼塊包含了可能發(fā)生異常的程序代碼。81 異常處理流程中,其中 catch 代碼快緊跟在try 代碼塊后面,用來捕獲并處理異常。82 異常處理流程中,其中 finally 代碼塊用于釋放被占用的相關資源。83 對于程序中可能出現的受檢查異常,要么用trycatch 語句捕獲并處理它,要么用 _throw_語句拋出它,Java 編譯器會對此做檢查。二、問題題1、用代碼表示A類關聯B類的情況。解析:一個Java應用中不可能只有一個類,所以了解類之間的關系對程序員來說非常重要。關聯關系是最常用的一種關系,如果說A關聯B,那么就是B作為A的屬性存在。關聯關系
13、是一種復用的策略,即A關聯B的時候,A可以復用B的行為。參考答案:Class A Private B b;Public void setB(B b)This.b=b;2、請說明Java語言中數組的基本概念,數組的作用,以及數組的聲明創(chuàng)建方式。解析:數組時任何一門語言里都常用的類型,Java語言也不例外。程序員了解數組,不能僅僅從語法上了解,而應該深入理解數組的作用。數組可
14、以用來存儲類型相同的元素,作為一種數據容器使用。和數組類似的概念是集合,也能作為數據容器使用。參考答案:數組時相同元素的集合,作為數據容器使用。聲明創(chuàng)建一個int型數組,如下所示:intx=new int3;其中3是數組的長度,該數組能夠存儲3個int型變量。3、使用代碼,創(chuàng)建一個長度為5的String型數組,并使用增強for循環(huán)迭代數組打印出數組中的元素。解析:增強for循環(huán)是JDK5增加的特性,可以方便地遍歷數組或集合。程序員需要了解的是,如果JDK版本低于5.0,則不支持這個功能。另外,并不是說有了增強for循環(huán)后,傳統的for循環(huán)就不被使用,增強for循環(huán)只能用來方便地遍歷數
15、組和集合,其他情況下還要使用傳統的for循環(huán)。參考答案: String sArray = new String5;For(String s:sArray) System.out.println(s);4、說明Arrays類的作用。解析:在實際工作中,常常需要對數組中的元素進行處理,例如排序等。初級程序員往往選擇自己編寫算法實現。實際上APV中提供了Arrays類,該類中定義了很多和數組有關的工具方法,能夠方便地處理數組,是程序員必須掌握的類。參考答案:A
16、rrays類是java.util包中的一個類,類中所有的方法都是static方法,這些方法都是數組對象的工具方法,能夠對數組進行處理,如sort方法可以對數組元素進行排序5、請使用簡單代碼展示A類依賴B類的含義。解析:對于程序員來說,了解類和類之間的關系非常必要。依賴關系指的是一種瞬間的關系。如果A依賴B,一般指的是A類的某個行為,需要B類對象作為參數。參考答案:Class APublic void f(B b)6、請說明依賴關系和關聯關系的區(qū)別。解析:關聯關系和依賴關系是非常常見的兩種關系,二者的區(qū)別也很明顯,程序員了解二者的區(qū)別能夠更深入的理解面向對
17、象的思想。參考答案:依賴關系是一種瞬時關系,A依賴B,指的是A的某個行為的參數是B的類型,也就是說,A要想實現這個行為,必須依賴B的實例,A關聯B,是一種長久的關系。?的是B作為A的屬性存在,只要實例化一個A的對象,就會為這個A的對象實例化一個B的對象,作為它的屬性使用,可以在A中任何需要使用B的地方使用B。7.繼承有什么作用,Java語言中的繼承有什么特點?解析:繼承是面向對象語言的一大特征,主要作用是重復使用,子類通過繼承父類,能夠重復使用父類的屬性和方法。指的注意的是,有兩個策略都可使實現重復使用,一個是關聯,一個是繼承,實際編程中,關聯用的更多。因為子類繼承父類后,相當于父類中的細節(jié)將
18、暴露給子類。初級程序員一定不要隨意使用繼承,避免濫用繼承。 參考答案:繼承主要為了能夠重復使用父類中的成員。Java語言中的繼承是單繼承,也就是說一個類最多只能繼承一個父類。8、什么是方法覆蓋(override)?并說明方法覆蓋與方法重載(overioad)的區(qū)別。 解析:方法覆蓋是一個非常重要的概念,是多態(tài)性的一個體現。方法覆蓋發(fā)生再去愛繼承關系中,當子類需要修改從父類繼承到某個方法的方法體時,就可以聲明一個父類同名同參數同返回值的方法,這樣就對父類中的那個方法進行了覆蓋,子類對象調用該方法時將自動綁定到子類中的方法。中很多
19、類中都進行了方法覆蓋,如String類中的toString方法,就覆蓋了父類Object中的toString方法。參考答案:覆蓋是發(fā)生在繼承關系的子類中,當子類要修改從父類繼承的某個方法的方法體時,就可以在子類中聲明一個與父類同名、同參數并且同返回值類型的方法,這就是方法覆蓋。而重載與繼承沒有關系,指的是在一個類中可以同時聲明多個同名但不同參數的方法,稱為重載。9、請說明什么是抽象類?抽象類有什么作用?解析:初級程序員往往不需要自己創(chuàng)建抽象類,但是必須了解抽象類的概念,并且會使用抽象類。抽象類往往是設計階段的概念,用來定義多個子類的模板,一些具體的實現可以在子類中進行。初級程序員往往需要會創(chuàng)建
20、子類繼承抽象類,實現抽象類中的方法。在API中,抽象類比比皆是。 參考答案:抽象類是不能實例化的類,使用abstract修飾。抽象類往往用來做父類使用,定義一些子類的共同屬性或行為。10、請說明抽象方法的含義,并說明抽象類與抽象方法的關系。解析:抽象方法都是在抽象類中定義的,是用來定義子類what to do的策略,而具體的how to do都在子類中實現。參考答案:抽象方法是沒有辦法體的方法,使用abstract修飾。抽象類中不一定有抽象方法,但是有抽象方法的類一定是抽象類。11、super關鍵字的兩種用法。
21、;解析:使用一些IDE生成代碼時,常常會在構造方法中見到super這個關鍵字。顧名思義,super是和父類有關的一個關鍵字,熟悉super的用法對熟練掌握繼承很有必要。參考答案:如super():表示調用父類中的每一參考的構造方法:又如super(10);表示調用父類中的具有一個整型參數的構造方法。第二種用法是在子類中調用父類中的成員,如super.f();意思是調用父類中的f()方法。12、final類與final方法有什么作用?解析:final修飾符是一個用途非常廣泛的修飾符,可以修飾類,方法,以及屬性。參考答案:final類是不能夠被繼承的類,稱為終極類,如String類就是final類
22、,不能有子類。final修飾方法后,是終極方法,不能被子類覆蓋,但是可以被子類繼承使用。13.什么是多態(tài)函數?多態(tài)函數有什么用?解析:多態(tài)性是面向對象語言的的一大特征,重載,覆蓋,多態(tài)參數是多態(tài)性的一種表現形式。多態(tài)參數處處可見,例如某方法f(Object o),這個方法的參數類型是Object,使用該方法時,只要傳遞給f的單數類型是Object即可。也就是說,Object類的任意參數可以傳遞給f方法。這就是多態(tài)參數。意思是對外形式都一樣,都是Object,具體實現可以是這個類型的任意子類,這就使得該方法比較靈活,Object類即使有了新的子類,卻不需要修改,就能直接作用到那個子類。
23、了解多態(tài)參數的含義和使用,對于Java的使用特別關鍵。參考答案:多態(tài)函數就是參數的類型是某個父類類型,具體為這個參數賦值的不同以使用該父類的任意子類的對象。使用多態(tài)參數,可以使程序的擴展性更好,即使%的子類方法不需要任何修改,就能接受子類類型進行處理。14.Object類有什么特點?解析:Object類是一個非常重要的類,是所有類的父類,包括數組在內,也就是對一個Java類,不管是API中定義的,還是自定義的類,都直接或間接的繼承了Object類。所以,如果有一個方法f(Object o),那么可以傳遞給這個方法任意一個類的對象,包括%。因為所有對象都可以說是Object類型。參考答
24、案:Object類是多有類的直接或間接的父類。15.Object類中的toString方法有什么用?解析:Object類是所有類的父類,所以Object類中的方法是所有類都默認具備的。類中的toString 方法可以將任意一個對象作為字符串返回,默認的格式是“類名內地%”API中很多類已經覆蓋了這個方法,將其返回值的格式進行了自定義,如String類中的方法已經覆蓋為返回字符串的字符序列。toString 方法在很多場合被自動調用,例如%一個對象時,就自動調用該對象的toString 方法,如果需要修改返回字符串的格式,%另外類中的覆蓋toString方法。參考答
25、案:toString方法可以把對象作為字符串返回。16.Object類中的equals方法和hashCode 方法。解析:在Object類中,equals方法比較對象的引用值,也就是只有物理上是同一對象的兩個引用,在使用equals方法返回true。hashCode方法返回一個對象的內在地址的十六進制值。由于Object類是所有類的父類,所以任意類中都擁有這兩個方法,并都可以進行覆蓋。尤其是操作Set,Map對象時集合元素類的equals方法和hashCode方法非常必要,因為Set和Map判斷元素是否重%是依靠這兩個方法進行。一般的原則是:如果存在X和Y兩個對象,調用X.equal
26、s(Y)相同時,那么調用hashCode方法返回值也應該相同;如果X.equals(Y)返回false時,那么調用hashCode方法返回值可能相同,也可能不同。值得注意的是,只要你覆蓋了equals方法,一定%則覆蓋hashCode 方法。在實際工作中,很多IDE環(huán)境都支持覆蓋equals和hashCode 方法。參考答案:Oject類中的equals方法用來比較兩個引用值,hashCode用來返回引用的內地址的十六進制數值。在Set以及Map集合中,判斷兩個元素是否重復時,往往需要使用這兩個方法。這兩個方法往往被子類覆蓋,覆蓋的規(guī)則是:如果存在x和y兩個對象,調用x.e
27、quals(y)返回true時,那么調用hashCode方法的返回值也該相同;如果x.equals(y)返回false時,那么調用hashCode方法返回的值可能相同,也可能不同。17.接口有什么特點,與抽象類有什么區(qū)別?解析:接近歐的概念是一個設計層面的概念,初級程序員往往不會自己定義接口,但是會使用接口,理解接口的概念非常必要。接口定義了實現類的規(guī)范,即what to do的部分,所有實現類必須按照這個規(guī)范進行實現。參考答案:接口的特點是不能定義變量,而且所有方法都是抽象方法。而抽象類中可以有變量,也不強制必須有抽象方法。18.類繼承父類與類實現接口,有什么區(qū)別?解析:
28、類繼承父類與類實現接口,本質上其實是一樣的。都是將父類或者接口作為模板,在這個模板上進行擴展或者重寫。程序員在實際編程中,常常需要繼承父類或者實現接口。參考答案:類繼承父類只是單繼承,也就是一個子類最多只有一個父類;而類實現接口可以多實現,就是一個子類可以同時實現多個接口,并覆蓋所有接口中的所有抽象方法。19.Comparable接口有什么作用解析:comparable接口是在實際編程中常常使用的接口,該接口定義了comareTo(Object o)方法,用來定義對象的比較邏輯。這個接口常常在其他API中會強制使用,例如Arrays類的sort(Object)方法,就強制數組元素必須
29、實現Comparable接口,與這個接口類似的 另外一個接口是Comparator。參考答案:Comparable接口定義了compareTo(Object o)方法,可以用來實現對象的比較邏輯,這個接口常常在其他API中強制使用,用來規(guī)范對象的比較邏輯第二部分 異常處理1 .什么是異常?異常和錯誤有什么區(qū)別?解析:異常處理是面向對象語言比起過程式語言的一大改進。對于Java程序員來說,必須了解異常處理,才能順利編程。參考答案:異常是一些不正常的事件,能夠中斷程序的正常執(zhí)行例如才除0計算就是異常。和錯誤不同,異常是可以被處理的,而錯誤往往是不能夠處理的,如內存溢出
30、錯誤。2 .nullPointException是什么異常?什么情況發(fā)生該異常?解析:程序員必須能夠了解常見的異常的發(fā)生原因,并能夠處理。NullPointerException就是特別常見的運行期異常。參考答案:NullPointerExcepiton是空指針異常,當一個引用沒喲被賦值,就是一null值如果這種情況下, 使用該引用調用其屬性或者方法, 就會發(fā)生NullPointerException異常。3.說明try/catch/finally語句塊的作用解析:編寫Java程序,避免不了需要處理異常。Java中處理異常使用try/catch/finally來實
31、現。尤其其中的finally語句非常值得程序員關注,可以用來執(zhí)行必須實現的功能,例如數據庫的鏈接等操作。參考答案:try語句塊用來包含可能發(fā)生異常的語句,catch塊用來捕獲異常,finally用來包含必須執(zhí)行的語句。4如何使用語句拋出異常,拋出異常后如何處理?解析:某些業(yè)務邏輯的非正常事件流,可以使用拋出異常來標記。拋出的異常必須是有意義的異常類型,建議不要使用API中的標準異常類,避免混淆。參考答案:使用throw語句就可以拋出異常,如throw new XXXException()。拋出異常時一般情況下會在聲明方法處使用throws聲明該類型的異常,調用該
32、方法是編譯器將提示異常。5. throws 關鍵字和 throw 關鍵字有什么區(qū)別和聯系?解析:throws和throw是異常處理時兩個常見的關鍵字,初級程序員常常容易正確理解throw和throws的作用和區(qū)別,說明已經能比較深入理解異常處理。Throw用來拋出異常,如果執(zhí)行了throw語句,程序將發(fā)生異常,進入到異常處理機制。Throws用來聲明異常,說明這個方法可能會發(fā)生某些類型的異常,那么編譯器將強制在調用這個方法的時候處理異常。API中的很多方法都使用了throws聲明了異常,所以使用這些方法時編譯器會提示需要處理異常。參考答案:throw用來
33、在方法體內拋出異常,而throws用來在方法聲明處聲明異常。這兩個關鍵字有著一定的聯系。如果一個方法中使用了throw關鍵字拋出了異常,那么要么立即用try/catch語句進行捕獲,要么就是用throws進行聲明,否則將出現編譯錯誤。然而,并不是只有使用了throw關鍵字之后才能使用throws關鍵字,語法上來說,任何一個方法都可以直接使用throws關鍵字,抽象方法也可以使用。6. 什么是自定義異常類?為什么要自定義異常類?解析:企業(yè)應用中,往往會自定義一系列的異常類,標記一些非正常的事件流。然而,這些自定義異常類不會讓每個程序員都自定義,而是會由專人定義,分發(fā)給程序員使用。參考答
34、案:自定義異常類區(qū)別于API中的標準異常類,指的是開發(fā)人員自己創(chuàng)建的異常類。只要繼承API中某個異常類就可以自定義一個異常類,常常集成Exception類。自定義異常類主要是為了標記業(yè)務邏輯中非正常事件流,避免與API中的標準異?;煜?。第四部分核心API1. 請畫出Java集合框架的主要接口和類的繼承關系。解析:集合石非常重要的類型, 也是企業(yè)考察員工編程能力時常常關注的知識點。程序員應該熟悉Java集合框架的主要繼承關系, 掌握常用集合類的用法和特點2. Collection接口和Map接口分別定義了什么集合類型?有什么區(qū)別?解
35、析:Collection和Map是Java集合框架中兩個基本集合類型,要區(qū)別不同的集合首先要從Collection和Map開始。參考答案:Collection接口是傳統的集合接口,可以把單個對象存儲進來。而Map接口是映射接口,存儲的是鍵值對。3. 用簡單代碼演示創(chuàng)建一個泛型類為Customer類的List對象,并使用增強for循環(huán)迭代集合。解析:JDK5以后,集合框架中的接口和類都是泛型類及泛型接口,并可以使用增強for循環(huá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接口的兩個子接口,也是使用最多的兩種集合類型。程序員應該熟悉這兩個接口的基本特征,能夠更準確地選擇正確的集合類型。參考答案:List實現了列表類型的集合,List中的元素是有序(ordered)的,每個元素根據放入集合的順序而對應一個索引值, 可以根據這個索引值返回集合原宿。而Set實現
37、了不重復元素集合,即Set中的元素不能夠重復,重復的元素將無法添加到集合中。5. List接口有哪幾個實現類?分別說明其特征解析:List是用的較多的集合類型,List是一個接口,具體使用List集合類型時,需要使用時實現類。List接口的每個實現類也都實現了不同的數據結構,各自具有不同的特征,其中最常用的是List實現類。參考答案:List接口中有以下幾個常用實現1 ArrayList:實現了動態(tài)數組的特征。2 LinkedList: 實現了鏈表的數據結構,LinkedList也可以用作?;蛘哧犃?。3 Vector:向量。4
38、60;ArrayList Vector類的功能 ArrayList都可以實現,區(qū)別在于Vector是現行同步的。6. Collectioin 和Collections有什么區(qū)別?解析:很多初級程序員對Collectioni和Collections容易混淆,二者的名字非常類似,本義卻大大不同,Collections類與Arrays類非常類似,都是工具類,程序員應該熟悉掌握。參考答案:Collection是一個接口的名字,定義了集合類型的共同特征。而Collections是一個類的名字,是集合類型的工具類,類中定義了大量的靜態(tài)方法,能
39、夠操作及和對象。7. 如何將一個Collection轉換成數組?解析:集合和數組有很多共同的地方,二者都是作為數據容器使用, 用來持有數據。數組的長度是固定的,集合的長度卻可以動態(tài)擴展,數組由于可以直接通過索引操作其元素,所以性能和效率較高。實際應用中,可能使用及合作為臨時變量持有數據,卻將處理結果轉換成數組返回。參考答案:Collection接口中定義了toArray(T a)方法來將集合轉換為數組,其中T是泛型類型。8、 集合的作用?集合是可以存儲一批類型不同的對象,針對集合的實現類有很多,作用都是一樣的,即存儲、傳輸數據,但存儲的數據結構不一樣,
40、其速度、安全性也不一樣。9 、HashMap和TreeMap在性能上有什么樣的差別呢?你比較傾向于使用哪一個?一個平衡樹的性能是O(logn)。Java里的TreeMap用一個紅黑樹來保證key/value的排序。紅黑樹是平衡二叉樹。保證二叉樹的平衡性,使得插入,刪除和查找都比較快,時間復雜度都是O(log n)。不過它沒有HashMap快,HashMap的時間復雜度是O(1),但是TreeMap的優(yōu)點在于它里面鍵值是排過序的,這樣就提供了一些其他的很有用的功能。 使用無序的HashSet和HashMap,還是使用有序的TreeSet和TreeMap,主要取決于你的實際使用
41、場景,一定程度上還和數據的大小以及運行環(huán)境有關。比較實際的一個原因是,如果插入和更新都比較頻繁的話,那么保證元素的有序可以提高快速和頻繁查找的性能。如果對于排序操作(例如產生一個報表合作者運行一個批處理程序)的要求不是很頻繁的話,那么把數據以無序的方式存儲,然后在需要排序的時候用Collections.sort()來進行排序,會比用有序的方式來存儲可能會更加高效。這個只是一種可選的方式,沒人能給你一個確切的答案。即使是復雜度的理論,例如O(n),成立的前提也是在n足夠大的情況下。只要在n足夠小的情況下,就算是O(n)的算法也可能會比O(log n)的算法更加高效。另外,一個算法可能在AMD處理器上的速度比在Intel處理器上快。如果你的系統有交換區(qū)的話,那么你還要考慮磁盤的性能。唯一可以確定的性能測試途徑是用大小合適的數據來測試和衡量程序的性能和內存使用量。在你所選擇的硬件上來測試這兩種指標,是最合適的方法。10、 什么是Iterator迭代器是一種設計模式,它是一個對象,它可以遍歷并選擇序列中的對象,而開發(fā)人員不需要了解該序列的底層結構。迭代器通常被稱為“輕量級”對象,因為創(chuàng)建它的代價小。 Java中的Iterator功能比較簡單,并且只能單向移動:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編初中歷史八下第1課中華人民共和國成立教案
- 2025年全球及中國大型不銹鋼鑄件行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球化妝品級枯草菌脂肽鈉行業(yè)調研及趨勢分析報告
- 2025-2030全球光纖導管靜脈激光治療行業(yè)調研及趨勢分析報告
- 2025年全球及中國銅纜高速連接器行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025國際(非獨占)商標使用許可合同
- 2025農業(yè)種植生產產銷合同書
- 餐飲業(yè)合同年
- 2025室內裝修設計合同范本
- 房屋租賃續(xù)簽合同模板
- 2025年湖南高速鐵路職業(yè)技術學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 醫(yī)保政策與健康管理培訓計劃
- 策略與博弈杜塔中文版
- 無人化農場項目可行性研究報告
- 2024屆上海市金山區(qū)高三下學期二模英語試題(原卷版)
- 學生春節(jié)安全教育
- 2024-2025年校長在教研組長和備課組長會議上講話
- 2025屆江蘇省常州市高級中學高三第二次模擬考試語文試卷含解析
- 高三日語一輪復習助詞「で」的用法課件
- 2024-2030年中國銣銫及其化合物行業(yè)深度調研及投資戰(zhàn)略分析報告
- 散貨物流行業(yè)市場調研分析報告
評論
0/150
提交評論