Java基礎(chǔ)入門課后習(xí)題及答案_第1頁
Java基礎(chǔ)入門課后習(xí)題及答案_第2頁
Java基礎(chǔ)入門課后習(xí)題及答案_第3頁
Java基礎(chǔ)入門課后習(xí)題及答案_第4頁
Java基礎(chǔ)入門課后習(xí)題及答案_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Java基礎(chǔ)入門課后習(xí)題 第1章 Java開發(fā)入門 一、填空題 1、Java的三大體系分別是_JavaSE_、_JavaEE_、_JavaME_。 2、Java程序的運行環(huán)境簡稱之為JRE_。 3、編譯Java程序需要使用_javac_命令。 4、和兩個可執(zhí)行程序存放在JDK安裝目錄的bin_目錄下。 5、path_環(huán)境變量用來存儲Java的編譯和運行工具所在的路徑,而_classpath_環(huán)境變量則用來保存保存Java虛擬機要運行的“.class”文件路徑。 二、選擇題 1、以下選項中,哪些屬于JDK工具?(多選)ABCD A、Java編譯器 B、Java運行工具 C、Java文檔生成工具

2、D、Java打包工具 2、Java屬于以下哪種語言?C A、機器語言 B、 匯編語言 C、高級語言 D、以上都不對 3、下面哪種類型的文件可以在Java虛擬機中運行?D A、.java B、.jre C、.exe D、.class 4、安裝好JDK后,在其bin目錄下有許多exe可執(zhí)行文件,其中命令的作用是以下哪一種? B A、Java文檔制作工具 B、Java解釋器 C、Java編譯器 D、Java啟動器 5、如果jdk的安裝路徑為:d:jdk,若想在命令窗口中任何當(dāng)前路徑下,都可以直接使用javac和java命令,需要將環(huán)境變量path設(shè)置為以下哪個選項?B Ad:jdk; Bd :jdk

3、bin; Cd:jrebin; Dd:jre; 三、問答題 的特點。Java、簡述1 面向?qū)ο?、跨平臺性、健壯性、安全性、可移植性、多線程性、動態(tài)性等。 JDK的區(qū)別。2、簡述JRE與程,它相當(dāng)于操作系統(tǒng)部分,提供了JavaJava Runtime Environment,Java運行時環(huán)境)( JRE是提供給控件類、網(wǎng)絡(luò)類等。JRE基礎(chǔ)類,例如,IO類、GUI序運行時所需要的基本條件和許多Java 。程序,那么,你的計算機上必須且只需安裝JRE普通用戶使用的,如果你只想運行別人開發(fā)好的Java,它包含編譯工具、解釋工具、文檔制作工具、打包開發(fā)工具包)Development Kit,JavaJ

4、DK(Java 語言時,首先Java工具多種與開發(fā)相關(guān)的工具,是提供給Java開發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用 JRE了。 后不必再去下載和安裝。JDK中已經(jīng)包含了JRE部分,初學(xué)者安裝JDK必須下載和安裝JDK,它包含編譯工具、解釋工具、文檔制作工具、,Java開發(fā)工具包) JDK(Java Development Kit語言時,首先Java開發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用Java打包工具多種與開發(fā)相關(guān)的工具,是提供給 了。 JRE部分,初學(xué)者安裝JDK后不必再去下載和安裝JRE必須下載和安裝JDK。JDK中已經(jīng)包含了 四、編程題命令行窗口編譯運行。請按照題目的要求編寫程序并dos使用記事本

5、編寫一個HelloWorld程序,在 給出運行結(jié)果。 public class HelloWorld public static void main(String args) );這是第一個Java 程序! 編程基礎(chǔ) Java第2章 一、填空題關(guān)鍵字來定義。 _class_、Java中的程序代碼都必須在一個類中定義,類使用12、布爾常量即布爾類型的兩個值,分別是_true_和_flase_。 1) 3、Java中的注釋可分為三種類型,分別是_單行注釋else 語句針對x的值進行三種情況的 判斷。2) 根據(jù)判斷結(jié)果分別執(zhí)行不同的表達式,并將結(jié)果賦予變量y。 3) 在方法的最后返回y的值。 4)

6、在main方法中調(diào)用設(shè)計好的方法,傳入一個int型的值,將方法的返回值打印。 3、請編寫程序,實現(xiàn)對數(shù)組25,24,12,76,101,96,28 的排序。 提示:使用冒泡排序算法。 第3章 面向?qū)ο螅ㄉ希?一、填空題 1、 面向?qū)ο蟮娜筇卣魇欠庋b性_、_繼承性_和_多態(tài)性_。 2、 在Java中,可以使用關(guān)鍵字_new_來創(chuàng)建類的實例對象。 3、 定義在類中的變量被稱為_成員變量_,定義在方法中的變量被稱為局部變量_ 4、 面向?qū)ο蟪绦蛟O(shè)計的重點是_類_的設(shè)計,_類_是用來創(chuàng)建對象的模板。 5、 在非靜態(tài)成員方法中,可以使用關(guān)鍵字_this_訪問類的其它非靜態(tài)成員。 6、 當(dāng)一個對象被當(dāng)成

7、垃圾從內(nèi)存中釋放時,它的_finalize()_方法會被自動調(diào)用。 7、 被static關(guān)鍵字修飾的成員變量被稱為_靜態(tài)變量_,它可以被該類所有的實例對象共享。 8、 在一個類中,除了可以定義屬性、方法,還可以定義類,這樣的類被稱為_內(nèi)部類_。 9、在Java中,提供了一個_javadoc_命令,用于將程序中的文檔注釋提取出來,生成HTML格式的幫助文檔。 10、所謂類的封裝是指在定義一個類時,將類中的屬性私有化,即使用_private_關(guān)鍵字來修飾。 二、判斷題 1、在定義一個類的時候,如果類的成員被private所修飾,該成員不能在類的外部被直接訪問。對 2、Java中的每個類都至少有一個

8、構(gòu)造方法,一個類中如果沒有定義構(gòu)造方法,系統(tǒng)會自動為這個類創(chuàng)建一個默認的構(gòu)造方法。對 3、聲明構(gòu)造方法時,不能使用private關(guān)鍵字修飾。錯 4、類中static修飾的變量或方法,可以使用類名或?qū)ο蟮囊米兞吭L問。對 5、方法內(nèi)部類中不能訪問外部類的成員變量。錯 三、選擇題1、類的定義必須包含在以下哪種符號之間?B A、方括號 B、花括號 C、雙引號“” D、圓括號() 2、下面哪一個是正確的類的聲明? D A、 public void HH B、 public class Move() D、 public class Car C、 public class void number 3、在以

9、下什么情況下,構(gòu)造方法會被調(diào)用?B A、 類定義時 B、 創(chuàng)建對象時 C、 調(diào)用對象方法時 D、 使用對象的變量時 4、下面對于構(gòu)造方法的描述,正確有哪些?(多選)ABC A、方法名必須和類名相同 B、方法名的前面沒有返回值類型的聲明 C、在方法中不能使用return語句返回一個值 D、當(dāng)定義了帶參數(shù)的構(gòu)造方法,系統(tǒng)默認的不帶參數(shù)的構(gòu)造方法依然存在 5、使用this調(diào)用類的構(gòu)造方法,下面的說法正確的是?(多選)ACD(ABCD) A、使用this調(diào)用構(gòu)造方法的格式為this(參數(shù)1,參數(shù)2) B、只能在構(gòu)造方法中使用this調(diào)用其它的構(gòu)造方法 C、使用this調(diào)用其它構(gòu)造方法的語句必須放在第一

10、行 D、不能在一個類的兩個構(gòu)造方法中使用this互相調(diào)用 6、下面哪些可以使用static關(guān)鍵字修飾?(多選)AC(ACD) A、 成員變量 B、局部變量 C、成員方法 D、成員內(nèi)部類 7、關(guān)于內(nèi)部類,下面說法正確的是?(多選)ACD(ABCD) A、成員內(nèi)部類是外部類的一個成員,可以訪問外部類的其它成員 B、外部類可以訪問成員內(nèi)部類的成員 C、方法內(nèi)部類只能在其定義的當(dāng)前方法中進行實例化 D、靜態(tài)內(nèi)部類中可以定義靜態(tài)成員,也可以定義非靜態(tài)成員 8、下面對于單例設(shè)計模式的描述,正確的是?(多選)BCD(ABCD) A、類中定義一個無參的構(gòu)造方法,并且聲明為私有 、在內(nèi)部創(chuàng)建一個該類的實例對象,

11、使用靜態(tài)變量引用該實例對象B private修飾靜態(tài)變量,禁止外界直接訪問C、使用 D、定義靜態(tài)方法返回該類實例 D9、請先閱讀下面的代碼public class Test public Test() 構(gòu)造方法一被調(diào)用了); public Test(int x) this(); 構(gòu)造方法二被調(diào)用了); public Test(boolean b) this(1); 構(gòu)造方法三被調(diào)用了); public static void main(String args) Test test = new Test(true); 上面程序的運行結(jié)果為下列哪一項? A、 B、構(gòu)造方法二被調(diào)用了 構(gòu)造方法一被調(diào)

12、用了D、以上三個選項之和、構(gòu)造方法三被調(diào)用了 C10、Outer類中定義了一個成員內(nèi)部類Inner,需要在main()方法中創(chuàng)建Inner類實例對象,以下四種方式哪一種是正確的?D A、 Inner in = new Inner() B、Inner in = new (); C、 in = new (); D、 in = new Outer().new Inner(); 四、程序分析題閱讀下面的程序,分析代碼是否能夠編譯通過,如果能編譯通過,請列出運行的結(jié)果。否則請說明編 譯失敗的原因。中的成員變量程序不能編譯通過,因為在類A代碼一:不能,secret是私有成員,只能類內(nèi)部訪問( 中無法訪問)

13、secret用private修飾,所以在類Test1 class A private int secret = 5; public class Test1 public static void main(String args) A a = new A(); )中不能訪問非靜態(tài)成員變量x。:代碼二250(程序不能編譯通過,因為在靜態(tài)方法method() public class Test2 int x = 50; static int y =200 ; public static void method() public static void main(String args) (); 代碼

14、三:Inner為私有內(nèi)部類,不允許外部訪問(inner)Inner inner = new Outer().new Inner();可以用外部類訪問內(nèi)部類 public class Outer public String name=Outer; private class Inner String name=inner; void showName() public static void main(String args) Inner inner = new Outer().new Inner(); 五、簡答題 1、構(gòu)造方法和普通的成員方法有什么區(qū)別? 構(gòu)造方法是類的一個特殊成員,它會在類實

15、例化對象時被自動調(diào)用。而普通方法只有在使用的時候才會被調(diào)用。在定義構(gòu)造方法時要求方法名與類名相同、在方法名的前面沒有返回值類型的聲明、在方法中不能使用return語句返回一個值 2、單例設(shè)計模式具備哪些特點? 單例模式可以保證在整個程序運行期間針對該類只存在一個實例對象。 六、編程題 1、請按照以下要求設(shè)計一個學(xué)生類Student,并進行測試。 要求如下: 1)Student類中包含姓名、成績兩個屬性 2)分別給這兩個屬性定義兩個方法,一個方法用于設(shè)置值,另一個方法用于獲取值. 3)Student類中定義一個無參的構(gòu)造方法和一個接收兩個參數(shù)的構(gòu)造方法,兩個參數(shù)分別為姓名和成績屬性賦值 4)在測

16、試類中創(chuàng)建兩個Student對象,一個使用無參的構(gòu)造方法,然后調(diào)用方法給姓名和成績賦值,一個使用有參的構(gòu)造方法,在構(gòu)造方法中給姓名和成績賦值 類,并進行測試。Child和Father、定義一個2 要求如下: ”。zhangjunFather類為外部類,類中定義一個私有的String類型的屬性name,name的值為“1)類的方法,方法中調(diào)用Father2)Child類為Father類的內(nèi)部類,其中定義一個introFather() name屬性。()introFather Test,在Test類的main()方法中,創(chuàng)建Child對象,并調(diào)用3)定義一個測試類方法。 4第章 面向?qū)ο螅ㄏ拢?一

17、、填空題 1、在Java語言中,允許使用已存在的類作為基礎(chǔ)創(chuàng)建新的類,這種技術(shù)我們稱為繼承_。,否則該類就必須定2方法_、一個類如果實現(xiàn)一個接口,那么它就需要實現(xiàn)接口中定義的全部_ 。_義成_抽象類 關(guān)鍵字。3、在程序開發(fā)中,要想將一個包中的類導(dǎo)入到當(dāng)前程序中,可以使用_import_,用于派生的類稱為_基類4、一個類可以從其它的類派生出來,派生出來的類稱為_子類_ _?;蛘達父類 _Exception_類的子類或者間接子類。5、 JDK中定義了大量的異常類,這些類都是 關(guān)鍵字修飾,那么該類不可以被繼承。Java類時,如果前面加使用_final_6、定義一個7、如果子類想使用父類中的成員,可以

18、通過關(guān)鍵字_super_引用父類的成員。 8、在Java語言中,所有的類都直接或間接繼承自_Object_類。 9、異常的捕獲通常由try、catch兩部分組成,_try_代碼塊用來存放可能發(fā)生異常,_catch_代碼塊用 來處理產(chǎn)生的異常。 10、在Java語言中,要想是將一個已編譯的類打包成jar文件,可以使用的命令是_jar-cvf_,要想在命令行窗口運行jar文件,可以使用的命令是_java-jar_。 二、判斷題 、抽象方法必須定義在抽象類中,所以抽象類中的方法都是抽象方法。錯12、Java中被final關(guān)鍵字修飾的變量,不能被重新賦值。對 3、不存在繼承關(guān)系的情況下,也可以實現(xiàn)方法

19、重寫。錯 4、package聲明語句應(yīng)當(dāng)為Java源文件中的第一條語句。對 5、接口中只能定義常量和抽象方法。錯(對) 三、選擇題 1、在類的繼承關(guān)系中,需要遵循以下哪個繼承原則?B A、多重 B、單一 C、雙重 D、不能繼承 2、在Java語言中,以下哪個關(guān)鍵字用于在方法上聲明拋出異常?C 3、關(guān)于super關(guān)鍵字以下說法哪些是正確的?(多選)ABD(ABC) A、super關(guān)鍵字可以調(diào)用父類的構(gòu)造方法 B、super關(guān)鍵字可以調(diào)用父類的普通方法 C、super與this不能同時存在于同一個構(gòu)造方法中 D、super與this可以同時存在于同一個構(gòu)造方法中 4、以下說法哪些是正確的?(多選)

20、ABCD A、Java語言中允許一個類實現(xiàn)多個接口 Java語言中不允許一個類繼承多個類B、 、Java語言中允許一個類同時繼承一個類并實現(xiàn)一個接口C 語言中允許一個接口繼承一個接口D、Java C5、類中的一個成員方法被下面哪個修飾符修飾,該方法只能在本類被訪問? 、default、 protected C、 private DA、public B AC6、關(guān)于抽象類的說法哪些是正確的?(多選) 、抽象類中可以有非抽象方法。A B、如果父類是抽象類,則子類必須重寫父類所有的抽象方法。 、不能用抽象類去創(chuàng)建對象。C 、接口和抽象類是同一個概念。D C中,要想讓一個類繼承另一個類,可以使用以下哪

21、個關(guān)鍵字?Java、在7 、modifiesimplements C、extends DA、inherits B、 D、System類位于以下哪個包中?8 、 C、 DA、 B、 A9、已知類的繼承關(guān)系如下: class Employee; class Manager extends Employee; class Director extends Employee; 則以下語句能通過編譯的有哪些? Director d=new Manager(); Employee e=new Manager(); B、A、 、Manager m=new Director();C、 Director d=n

22、ew Employee(); D 、編譯運行下面的程序,結(jié)果是什么?B10public class A public static void main(String args) B b = new B(); (); void test() A); class B extends A void test() (); B); AB 、代碼可以編譯運行,并輸出結(jié)果 B、產(chǎn)生編譯錯誤A D、編譯沒有錯誤,但會產(chǎn)生運行時異常C、代碼可以編譯運行,但沒有輸出 四、分析題閱讀下面的程序,分析代碼是否能編譯通過,如果能編譯通過,請列出運行的結(jié)果。如果不能編譯通 過,請說明原因。 catch代碼塊代碼一:進入塊

23、,捕獲了try(程序編譯能通過,這是因為int x = 2 / 0; 這兩條語句使用了進入finally代碼塊finally“進入catch代碼塊”,“進入程序因為除以0而產(chǎn)生的異常情況,之后程序會繼續(xù)向下執(zhí)行,輸出 )代碼塊”。 public class Test01 public static void main(String args) try int x = 2 / 0; catch (Exception e) 進入catch 代碼塊 ); finally 進入finally代碼塊); 代碼二:不能,final修飾shout,不能被重寫(程序編譯不通過,這是因為在程序中使用了final

24、關(guān)鍵字修飾Animal類,使得Animal類不能被繼承。shout()方法中同樣使用了final關(guān)鍵字,使得該方法不能被重寫。) final class Animal public final void shout() 碼一:不能,RunHandler沒有繼承Thread,不能用Thread創(chuàng)建對象(程序不能編譯通過,因為RunHandler類沒有實現(xiàn)Runnable接口,因此RunHandler的實例對象不能作為參數(shù)傳遞給Thread的 )構(gòu)造方法。 class RunHandler public void run() un); public class Test public static

25、 void main(String args) Thread t = new Thread(new RunHandler(); (); 方法的訪問級別run()Thread的子類A重寫的:2.代碼二this is run(程序不能編譯通過,因為 )不能低于父類run()方法的。訪問級別 public class A extends Thread void run() protected run();his is public static void main(String args) A a = new A(); (); 3.代碼三:Exception(程序不能編譯通過,因為同步方法中調(diào)用wa

26、it()方法的對象必須為同步鎖對象) public class Test private Object obj=new Object(); public synchronized void a() try () ();改 waiting); catch (InterruptedException e) Exception); public static void main(String args) new Test().a(); 4.為了使下面的程序能夠輸出“Thread is running”,請在在空格處填上相應(yīng)的代碼。 public class B implements Runnable

27、 public static void main(String args) Thread t = new Thread(new B(); ()_ tart(); 另一種就是實現(xiàn)接口,同樣是在run()方法中實現(xiàn)運行在線程上的代碼。 new Thread(new Runnable() public void run() ).start() 1、 sleep() 和 wait() 有什么區(qū)別? 調(diào)用sleep()方法,正在執(zhí)行的線程主動讓出CPU去執(zhí)行其他線程,在sleep()方法指定的時間過后,CPU才會回到這個線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進入了同步鎖,sleep()方法并不會釋放鎖,即使當(dāng)

28、前線程使用sleep()方法讓出了CPU,但其它被同步鎖擋住了的線程也無法得到執(zhí)行。wait()在一個已經(jīng)進以便其它正在等待此鎖的線程可以得到同步讓當(dāng)前線程暫時讓出同步鎖,入了同步鎖的線程內(nèi)進行調(diào)用,鎖并運行。當(dāng)其它線程調(diào)用了notify()方法后,調(diào)用wait()方法的線程就會解除wait狀態(tài),當(dāng)再次獲得同步鎖后,程序可以繼續(xù)向下執(zhí)行。 六、編程題 請按照題目的要求編寫程序并給出運行結(jié)果。 1、通過繼承Thread類的方式創(chuàng)建兩個線程,在Thread構(gòu)造方法中指定線程的名字,并將這兩個線程的名字打印出來。 2、通過實現(xiàn)Runnable接口的方式創(chuàng)建一個新線程,要求main線程打印100此次“

29、main”,新線程打印50次“new”。 3、模擬傳智播客的三個老師同時分發(fā)80份學(xué)習(xí)筆記,每個老師相當(dāng)于一個線程。 4、編寫10個線程,第一個線程從1加到10,第二個線程從11加到20.第十個線程從91加到100,最后再把十個線程結(jié)果相加。 第5章 JavaAPI 一、填空題 1、在Java中定義了兩個類來封裝對字符串的操作,它們分別是String_和_StringBuffer_。 2、Java中的操作日期的類有_Date_、_Calendar_、DateFormat_等。 3、在程序中若想取得一個Runtime實例,則可以調(diào)用Runtime類的靜態(tài)方法getRnutime()_。 4、Ma

30、th類中用于計算所傳遞參數(shù)平方根的方法是_sqrt()_。 5、Java中專門用于將日期格式化為字符串的類是_DateFormat_。 6、Math類中有兩個靜態(tài)常量PI和E,分別代表數(shù)學(xué)常量_和_e_。 7、Java中的用于產(chǎn)生隨機數(shù)的類是_Random_,它位于包中。 8、String類中用于返回字符串字符個數(shù)的方法是_length()_。 9、System類中所提供的屬性和方法都是_靜態(tài)_的,想要引用這些屬性和方法,直接使用System類調(diào)用即可。 10、已知 sb 為 StringBuffer 的一個實例,且 () 的值為尠扡摣?, 則執(zhí)行sb. reverse()后, 。_”edcb

31、a_”_的值為() 二、判斷題 對象都是字符串變量,創(chuàng)建后都可以修改。錯String對象和StringBuffer1、 。錯=”比較字符串對象時,如果兩個字符串的值相同,結(jié)果為true2、用運算符“ 類型的值。對currentTimeMillis()方法返回一個long3、System類中的 replace 類的方法、StringDateFormat類都位于包中。錯 分別 4、Date、Calendar以及替換此字符串中出現(xiàn)srt2(CharSequence srt1, CharSequence srt2)返回一個新的字符串,它是通過用 得到的。對的所有 srt1 三、選擇題。 C、先閱讀下面

32、的程序片段:1String str = abccdefcdh; String arr = (c); 程序執(zhí)行后,打印的結(jié)果是幾? A、2個 B、 3個 C、4個 D、 5個 2、以下都是Math類的常用方法,其中用于計算絕對值的方法是哪個?C A、ceil() B、 floor() C、 abs() D、random() 3、Random對象能夠生成以下哪種類型的隨機數(shù)?D A、int B、string C、double D、A和C 4、String s = abcdedcba;則(3,4)返回的字符串是以下選項中的哪個?C A、cd B、de C、d D、e 5、假若indexOf()方法未

33、能找到所指定的子字符串,則返回以下選項中的哪個?C A、 false B、 0 C、-1 D、以上答案都不對 6、要產(chǎn)生20,999之間的隨機整數(shù)可以使用以下哪個表達式?B A(int)(20+()*97) B. 20+(int)()*980) C. (int)()*999 D. 20+(int)()*980 (C)D類的方法中,通過哪個方法運算后,結(jié)果為?Math、以下7大于參數(shù)最小于參數(shù)最大整數(shù) D. ceil()A. round()四舍五入 B. min() C. floor() 小整數(shù) A8、下面的程序段執(zhí)行后,輸出的結(jié)果是以下哪個選項? StringBuffer buf=new St

34、ringBuffer(Beijing2008); (7,); 、Beijing#2008 Beijing2008 B、Beijing2008 C、Beijing2008 D 、 、閱讀下面的程序:A9 class test public void main(String args) static public int i; = ; float f = ; double d (int)(f) * (int)(d); i = 程序執(zhí)行后,運行結(jié)果為以下哪個選項? A、 9 B、 5 C、6 D、 10、先閱讀下面的程序片段:B String str1=new String(java); Strin

35、g str2=new String(java); StringBuffer str3=new StringBuffer(java); 對于上述定義的變量,以下表達式的值為true的是哪個? A、 str1=str2; B、(str2); C、str1=str3; D、以上都不對 四、程序分析題。 閱讀下面的程序,分析代碼是否能編譯通過,如果能編譯通過,請列出運行的結(jié)果。如果不能編譯通 過,請說明原因。 代碼一:5 -5 public class A public static void main(String args) ); ); ():15代碼二: (0):d lastIndexOf(m)

36、: substring(2,4):fe indexOf(g):5public class B public static void main(String args) String s = dfferghuklmbdfd; (): + (); (0): + (0); lastIndexOf(m): + (m); substring(2,4): + (2, 4); indexOf(g): + (g); 五、簡答題 1、String和StringBuffer有什么區(qū)別? String類是不可變類,即字符串值一旦初始化后就不可能改變。StringBuffer是可變字符串類,類似String的緩沖區(qū),

37、可以修改字符串的值。 2、Date和Calender類有什么區(qū)別和聯(lián)系? Date類用來表示某個特定的瞬間,能夠精確到毫秒。而在實際應(yīng)用中,往往需要把一個日期中的年、月、日等信息單獨返回進行顯示或處理,這個類中的大部分方法都已被標(biāo)記過時。Calender類基本取代了Date類,該類中定義了一系列用于完成日期和時間字段操作的方法。 Calendar的getTime()方法,getTime()返回一個表示Calendar時間值的Date對象,同時Calendar有一個setTime(Date date)方法,setTime()方法接收一個Date對象,將Date對象表示的時間值設(shè)置給Calenda

38、r對象,通過這兩個方法就可以完成Date和Calendar對象之間的轉(zhuǎn)換。 六、編程題 請按照題目的要求編寫程序并給出運行結(jié)果 1、 編寫一個程序,實現(xiàn)字符串大小寫的轉(zhuǎn)換并倒序輸出,要求如下 1)使用for循環(huán)將字符串“HelloWorld”從最后一個字符開始遍歷。 2)遍歷的當(dāng)前字符如果是大寫字符,就使用toLowerCase()方法將其轉(zhuǎn)換為小寫字符,反之則使用toUpperCase() 方法將其轉(zhuǎn)換為大寫字符 3)定義一個StringBuffer對象,調(diào)用append()方法依次添加遍歷的字符,最后調(diào)用StringBuffer對象的toString()方法,并將得到的結(jié)果輸出。 2、 計

39、算從今天算起,100天以后是幾月幾號,并格式化成xxxx年x月x日的形式打印出來。 提示: 1)調(diào)用Calendar類的add()方法計算100天后的日期 2)調(diào)用Calendar的getTime() 方法返回Date類型對象 2)使用FULL格式的DateFormat對象,調(diào)用format() 方法格式化Date對象 3、利用Random類來產(chǎn)生5個2050之間的隨機整數(shù)。 提示:n-m(n、m均為整數(shù),nm)之間的隨機數(shù)的公式為n+(new Random().nextInt(m-n+1)。 集合類第6章 一、填空題 集合 。1、JDK中提供了一系列可以存儲任意對象的類,統(tǒng)稱為 接TreeS

40、et對象時,可以傳入自定義的比較器,自定義比較器需要實現(xiàn) Comparator 2、在創(chuàng)建 口。集合,SetList集合的特點是 有序、可重復(fù) 3、Collection有兩個子接口分別是List和Set, 。的特點是 無序、不可重復(fù) 方法判斷是否存在下一個元素,若存遍歷集合時,首先需要調(diào)用 hashNext() 4、使用Iterator 方法取出該元素。在下一個元素,則調(diào)用 next() , Collection 5、集合按照存儲結(jié)構(gòu)的不同可分為單列集合和雙列集合,單列集合的根接口是 。雙列集合的根接口是 Map 的映射關(guān)系存在。 值 、Map集合中的元素都是成對出現(xiàn)的,并且都是以 鍵 、6

41、、Iterator有一個子類,不僅可以對集合進行從前向后遍歷,還可以從后向前遍歷,該類是7 ListIterator 。 集合的主要實現(xiàn)類有,SetList集合的主要實現(xiàn)類有 ArrayList 、 LinkedList 、8 TreeMap 。 TreeSet Map、集合的主要實現(xiàn)類有 HashMap 、HashSet 方法,要想根據(jù)該集合的鍵獲取對應(yīng)的值需要調(diào)用Map、集合中存儲元素需要調(diào)用 put() 9 方法。get() 、包中提供了一個專門用來操作集合的工具類,這個類是 Collections 10,還提供了一個專門 用于操作數(shù)組的工具類,這個類是 Arrays 。 二、判斷題 1

42、、Set集合是通過鍵值對的方式來存儲對象的。錯 2、集合中不能存放基本數(shù)據(jù)類型,而只能存放引用數(shù)據(jù)類型。對 3、如果創(chuàng)建的TreeSet集合中沒有傳入比較器,則該集合中存入的元素需要實現(xiàn)Comparable接口。對 迭代集合元素時,可以調(diào)用集合對象的方法增刪元素。錯Iterator、使用45、LinkedList在內(nèi)部維護了一個雙向循環(huán)鏈表,每一個元素節(jié)點都包含前一個元素節(jié)點和后一個元素節(jié)點的引用。對 三、選擇題 1、要想保存具有映射關(guān)系的數(shù)據(jù),可以使用以下哪些集合?(多選)BC A、ArrayList B、TreeMap C、HashMap D、TreeSet 2、Java語言中,集合類都位

43、于哪個包中?A A、 B、 C、 D、 3、使用Iterator時,判斷是否存在下一個元素可以使用以下哪個方法?D A、next() B、hash() C、hasPrevious() D、hasNext() 4、關(guān)于foreach循環(huán)的特點,以下說法哪些是正確的?(多選)ABD A、foreach循環(huán)在遍歷集合時,無需獲得容器的長度 B、foreach循環(huán)在遍歷集合時,無需循環(huán)條件,也無需迭代語句 C、foreach循環(huán)在遍歷集合時非常繁瑣 D、foreach循環(huán)的語法格式為:for(容器中元素類型 臨時變量 :容器變量)。 5、在程序開發(fā)中,經(jīng)常會使用以下哪個類來存儲程序中所需的配置?C A

44、、HashMap B、TreeSet C、Properties D、TreeMap 6、使用 Enumeration遍歷集合時,需要使用以下哪些方法?(多選)AB A、hasMoreElements() B、nextElement() C 、next() D、hashNext() 7、要想集合中保存的元素沒有重復(fù)并且按照一定的順序排列,可以使用以下哪個集合?D A、LinkedList B、 ArrayList C、hashSet D、TreeSet 8、下列哪些說法是正確的?(多選)AB A、LinkedList集合在增刪元素時效率較高 B、ArrayList集合在查詢元素時效率較高 C、H

45、ashMap不允許出現(xiàn)一對null鍵null值 D、HashSet集合中元素可重復(fù)并且無序 9、以下哪些方法是LinkedList集合中定義的?(多選) ABC next() 、remove (int index) D、getFirst() C、getLast() B、 A B 10、獲取單列集合中元素的個數(shù)可以使用以下哪個方法? add(Object obj)、get(int index) D、 A、length() B、 size() C 四、分析題 閱讀下面的程序,分析代碼是否能編譯通過,如果能編譯通過,請列出運行的結(jié)果。如果不能編譯通 過,請說明原因。2”,因為TreeSet集合不允許

46、存放重復(fù)元素,第代碼一:程序可以編譯通過,輸出結(jié)果是“a、b、c c”。、b、c、次增加的元素c會覆蓋之前存入的元素c,所以輸出結(jié)果是“ab、c”,而不是“a import .*; public class Test01 public static void main(String args) TreeSet ts = new TreeSet(); (); (a); (c); (c); Iterator it = (); while() 代碼二:程序不可以編譯通過,這是由于向ArrayList集合中存入元素時,集合并不能記住元素的類型,因此在取出元素時,只能使用Object類型,而不能使用St

47、ring類型。 import class Test02 public static void main(String args) ArrayList list = new ArrayList(); (a); (); (c); for (String obj : list) 進行從后向前的遍歷集合,但是什么也沒有打印。使用ListIterator 代碼三:程序可以編譯通過,的值設(shè)置為集合元方法將索引index一是使用可以使用以下兩種方法,listIterator(int index) (3);,二是將程序先從前向后遍歷,然后再從后向前遍歷。素的數(shù)目,也就是ListIterator it = im

48、port .*; public class Test03 public static void main(String args) ArrayList list = new ArrayList(); (demo_1); (demo_2); (demo_3); ListIterator it = (); while() Object obj = (); ); 代碼四:程序編譯不通過,由于Map集合在遍歷的過程中不能使用集合對象本身刪除元素,這會導(dǎo)致并發(fā)修改異常,若想刪除集合中的元素,可以使用Iterator的remove()方法。 import .*; import class Test04 p

49、ublic static void main(String args) Map map = new HashMap(); (1, Tom); (2, Lucy); (3,Annie); Set keySet = (); Iterator it = (); while () Object key = (); (key); 五、簡答題 1、什么是集合,請列舉集合中常用的類和接口? 為了使程序能方便的存儲和操作數(shù)目不固定的一組數(shù)據(jù),JDK提供了一套類庫,這些類都位 于包中,統(tǒng)稱為集合。集合框架中包含3個接口,分別是List、Set、Map。 2、集合中的List、Set、Map有什么區(qū)別? List

50、的特點是元素有序、元素可重復(fù)。List接口的主要實現(xiàn)類有ArrayList和LinkedList。Set的特點是元素?zé)o序、元素不可重復(fù)。Set接口的主要實現(xiàn)類有HashSet和TreeSet。Map的特點是存儲的元素是鍵(Key)、值(Value)映射關(guān)系,元素都是成對出現(xiàn)的。Map接口的主要實現(xiàn)類有HashMap和TreeMap。 3、請說說Collection和Collections的有什么區(qū)別? Collection是一個單例集合接口。它提供了對集合對象進行基本操作的通用方法。Collections是一個工具類。它包含各種有關(guān)集合操作的方法。 六、編程題 請按照題目的要求編寫程序并給出運

51、行結(jié)果。 遍歷該集合。Iterator個不同的元素,并使用10集合,對其添加ArrayList使用 、1提示: 1)使用add()方法將元素添加到ArrayList集合中。 2)調(diào)用集合的iterator()方法獲得Iterator對象,并調(diào)用Iterator的hasNext()和next()方法,迭代出 集合中的所有元素。 2、 在HashSet集合中添加三個Person對象,把姓名相同的人當(dāng)做同一個人,禁止重復(fù)添加。 提示: 1)Person類中定義name和age屬性,重寫hashCode()方法和equals()方法,針對Person類的name屬性進行比較,如果name相同,hashCode()方法的返回值相同,equals方法返回true。 3、選擇合適的Map集合保存5位學(xué)員的學(xué)號和姓名,然后按學(xué)號的自然順序的倒序?qū)⑦@些鍵值對一一打印出來。 提示: 1)創(chuàng)建TreeMap集合。 2

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論