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

下載本文檔

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

文檔簡介

1、«Java基礎(chǔ)入門課后習(xí)題第1章Java開發(fā)入門一、填空題1、Java的三大體系分另1J是_JavaSE、_JavaEE、_JavaME。2、Java程序的運(yùn)行環(huán)境簡稱之為JRE。3、編譯Java程序需要使用avac命令。4、和兩個可執(zhí)行程序存放在JDK安裝目錄的bin目錄下。5、path環(huán)境變量用來存儲Java的編譯和運(yùn)行工具所在的路徑,而_classpath環(huán)境變量則用來保存保存Java虛擬機(jī)要運(yùn)行的“.class”文件路徑。二、選擇題1、以下選項(xiàng)中,哪些屬于JDK工具?(多選)ABCDAJava編譯器B、Java運(yùn)行工具CJava文檔生成工具DJava打包工具2、Java屬于以

2、下哪種語言?CA機(jī)器語言B、匯編語言C、高級語言D以上都不對3、下面哪種類型的文件可以在Java虛擬機(jī)中運(yùn)行?DA.javaB、.jreC、.exeD、.class4、安裝好JDK后,在其bin目錄下有許多exe可執(zhí)行文件,其中命令的作用是以下哪一種?BAJava文檔制作工具B、Java解釋器?C、Java編譯器?D、Java啟動器?5、如果jdk的安裝路徑為:d:jdk,若想在命令窗口中任何當(dāng)前路徑下,都可以直接使用javac和java命令,需要將環(huán)境變量path設(shè)置為以下哪個選項(xiàng)?BA.d:jdk;?B.d?:jdkbin;?C.d:jrebin;?D.d:jre;三、問答題1、簡述Jav

3、a的特點(diǎn)。2、簡述JRE與JDK的區(qū)別。四、編程題使用記事本編寫一個HelloWorld程序,在dos命令行窗口編譯運(yùn)行。請按照題目的要求編寫程序并給出運(yùn)行結(jié)果。第2章Java編程基礎(chǔ)一、填空題1、Java中的程序代碼都必須在一個類中定義,類使用_class關(guān)鍵字來定義。2、布爾常量即布爾類型的兩個值,分別是_true和flase。1)3、Java中0注釋可分為三種類型,分別是_單行注釋else語句針對x的值進(jìn)行三種情況的判斷。2)根據(jù)判斷結(jié)L分別執(zhí)行不同的表達(dá)式,并將結(jié)果賦予變量V。3)在方法的最后返回y的值。4)在main方法中調(diào)用設(shè)計(jì)好的方法,傳入一個int型的值,將方法的返回值打印。3

4、、請編寫程序,實(shí)現(xiàn)對數(shù)組25,24,12,76,101,96,28的排序。提示:使用冒泡排序算法。第3章面向?qū)ο螅ㄉ希┮?、填空題1、面向?qū)ο蟮娜筇卣魇欠庋b性_、_繼承性和_多態(tài)性。2、在Java中,可以使用關(guān)鍵字_new來創(chuàng)建類的實(shí)例對象。3、定義在類中的變量被稱為_成員變量,定義在方法中的變量被稱為局部變量4、面向?qū)ο蟪绦蛟O(shè)計(jì)的重點(diǎn)是_類_的設(shè)計(jì),_類是用來創(chuàng)建對象的模板。5、在非靜態(tài)成員方法中,可以使用關(guān)鍵字_this_訪問類的其它非靜態(tài)成員。6、當(dāng)一個對象被當(dāng)成垃圾從內(nèi)存中釋放時,它的_finalize()方法會被自動調(diào)用。7、被static關(guān)鍵字修飾的成員變量被稱為_靜態(tài)變量_,它可

5、以被該類所有的實(shí)例對象共享。8、在一個類中,除了可以定義屬性、方法,還可以定義類,這樣的類被稱為_內(nèi)部類。9、在Java中,提供了一個_javadoc命令,用于將程序中的文檔注釋提取出來,生成HTML格式的幫助文檔。10、所謂類的封裝是指在定義一個類時,將類中的屬性私有化,即使用_private關(guān)鍵字來修飾。二、判斷題1、在定義一個類的時候,如果類的成員被private所修飾,該成員不能在類的外部被直接訪問。對2、Java中的每個類都至少有一個構(gòu)造方法,一個類中如果沒有定義構(gòu)造方法,系統(tǒng)會自動為這個類創(chuàng)建一個默認(rèn)的構(gòu)造方法。對3、聲明構(gòu)造方法時,不能使用private關(guān)鍵字修飾。錯4、類中st

6、atic修飾的變量或方法,可以使用類名或?qū)ο蟮囊米兞吭L問。對5、方法內(nèi)部類中不能訪問外部類的成員變量。錯三、選擇題1、類的定義必須包含在以下哪種符號之間?BA、方才號口B、花括號C、雙引號""H圓才號()2、下面哪一個是正確的類的聲明?DApublicvoidHHBpublicclassMove()CpublicclassvoidnumberD、publicclassCar3、在以下什么情況下,構(gòu)造方法會被調(diào)用?BA、類定義時日創(chuàng)建象時C調(diào)用對象方法時D使用對象的變量時4、下面對于構(gòu)造方法的描述,正確有哪些?(多選)ABCA、方法名必須和類名相同B、方法名的前面沒有返回值

7、類型的聲明C、在方法中不能使用return語句返回一個值D、當(dāng)定義了帶參數(shù)的構(gòu)造方法,系統(tǒng)默認(rèn)的不帶參數(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)造方法的語句必須放在第一行D、不能在一個類的兩個構(gòu)造方法中使用this互相調(diào)用6、下面哪些可以使用static關(guān)鍵字修飾?(多選)AC(ACD)A、成員變量B、局部變量C成員方法Dk成員內(nèi)部類7、關(guān)于內(nèi)部類,下面說法正確的是?(多選)ACD(ABCDA、成員內(nèi)部

8、類是外部類的一個成員,可以訪問外部類的其它成員B、外部類可以訪問成員內(nèi)部類的成員C方法內(nèi)部類只能在其定義的當(dāng)前方法中進(jìn)行實(shí)例化D靜態(tài)內(nèi)部類中可以定義靜態(tài)成員,也可以定義非靜態(tài)成員8、下面對于單例設(shè)計(jì)模式的描述,正確的是?(多選)BCD(ABCDA、類中定義一個無參的構(gòu)造方法,并且聲明為私有B、在內(nèi)部創(chuàng)建一個該類的實(shí)例對象,使用靜態(tài)變量引用該實(shí)例對象C、使用private修飾靜態(tài)變量,禁止外界直接訪問D、定義靜態(tài)方法返回該類實(shí)例9、請先閱讀下面的代碼DpublicclassTestpublicTest()publicTest(intx)this();publicTest(booleanb)thi

9、s(1);publicstaticvoidmain(String口args)Testtest=newTest(true);上面程序的運(yùn)行結(jié)果為下列哪一項(xiàng)?A、構(gòu)造方法一被調(diào)用了B、構(gòu)造方法二被調(diào)用了C、構(gòu)造方法三被調(diào)用了H以上三個選項(xiàng)之和10、Outer類中定義了一個成員內(nèi)部類Inner,需要在main()方法中創(chuàng)建Inner類實(shí)例對象,以下四種方式哪一種是正確的?DAInnerin=newInner()BInnerin=();C=();D、=newOuter().newInner();四、程序分析題閱讀下面的程序,分析代碼是否能夠編譯通過,如果能編譯通過,請列出運(yùn)行的結(jié)果。否則請說明編譯失敗

10、的原因。代碼一:不能,secret是私有成員,只能類內(nèi)部訪問(程序不能編譯通過,因?yàn)樵陬怉中的成員變量secret用private修飾,所以在類Test1中無法訪問)classAprivateintsecret=5;publicclassTest1publicstaticvoidmain(String口args)Aa=newA();代碼二:250(程序不能編譯通過,因?yàn)樵陟o態(tài)方法method()中不能訪問非靜態(tài)成員變量x。)publicclassTest2intx=50;staticinty=200;publicstaticvoidmethod()+y);publicstaticvoidmai

11、n(String口args)();代碼三:Inner為私有內(nèi)部類,不允許外部訪問(inner)Innerinner=newOuter().newInner();可以用外部類訪問內(nèi)部類publicclassOuterpublicStringname="Outer"privateclassInnerStringname="inner"voidshowName()publicstaticvoidmain(String口args)Innerinner=newOuter().newInner();五、簡答題1、構(gòu)造方法和普通的成員方法有什么區(qū)別?構(gòu)造方法是類的一個

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

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

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

15、員。8、在Java語言中,所有的類都直接或間接繼承自.Object類。9、異常的捕獲通常由try、catch兩部分組成,_try代碼塊用來存放可能發(fā)生異常,_catch代碼塊用來處理產(chǎn)生的異常。10、在Java語言中,要想是將一個已編譯的類打包成jar文件,可以使用的命令是ar-cvf,要想在命令行窗口運(yùn)行jar文件,可以使用的命令是_java-jar。二、判斷題1、抽象方法必須定義在抽象類中,所以抽象類中的方法都是抽象方法。錯2、Java中被final關(guān)鍵字修飾的變量,不能被重新賦值。對3、不存在繼承關(guān)系的情況下,也可以實(shí)現(xiàn)方法重寫。錯4、package聲明語句應(yīng)當(dāng)為Java源文件中的第一條

16、語句。對5、接口中只能定義常量和抽象方法。錯”)三、選擇題1、在類的繼承關(guān)系中,需要遵循以下哪個繼承原則?BA、多重B、單一C、雙重Dk不能繼承2、在Java語言中,以下哪個關(guān)鍵字用于在方法上聲明拋出異常?C3、關(guān)于super關(guān)鍵字以下說法哪些是正確的?(多選)ABD(ABCAsuper關(guān)鍵字可以調(diào)用父類的構(gòu)造方法Bsuper關(guān)鍵字可以調(diào)用父類的普通方法Csuper與this不能同時存在于同一個構(gòu)造方法中Dsuper與this可以同時存在于同一個構(gòu)造方法中4、以下說法哪些是正確的?(多選)ABCDAJava語言中允許一個類實(shí)現(xiàn)多個接口BJava語言中不允許一個類繼承多個類CJava語言中允許一

17、個類同時繼承一個類并實(shí)現(xiàn)一個接口DJava語言中允許一個接口繼承一個接口5、類中的一個成員方法被下面哪個修飾符修飾,該方法只能在本類被訪問?CApublicB、protectedC、privateD、default6、關(guān)于抽象類的說法哪些是正確的?(多選)ACA、抽象類中可以有非抽象方法。日如果父類是抽象類,則子類必須重寫父類所有的抽象方法。C不能用抽象類去創(chuàng)建對象。D接口和抽象類是同一個概念。7、在Java中,要想讓一個類繼承另一個類,可以使用以下哪個關(guān)鍵字?CAinheritsB、implementsC、extendsD、modifies8、System類位于以下哪個包中?DA、9、已知類

18、的繼承關(guān)系如下:AclassEmployee;classManagerextendsEmployee;classDirectorextendsEmployee;則以下語句能通過編譯的有哪些?AEmployeee=newManager();B、Directord=newManager();CDirectord=newEmployee();D、Managerm=newDirector();10、編譯運(yùn)行下面的程序,結(jié)果是什么?BpublicclassApublicstaticvoidmain(String口args)Bb=newB();();voidtest()classBextendsAvoid

19、test()();A產(chǎn)生編譯錯誤日代碼可以編譯運(yùn)彳T,并輸出結(jié)果ABC代碼可以編譯運(yùn)彳T,但沒有輸出D編譯沒有錯誤,但會產(chǎn)生運(yùn)行時異常四、分析題閱讀下面的程序,分析代碼是否能編譯通過,如果能編譯通過,請列出運(yùn)行的結(jié)果。如果不能編譯通過,請說明原因。代碼一:進(jìn)入catch代碼塊進(jìn)入finally代碼塊(程序編譯能通過,這是因?yàn)閕ntx=2/0;這兩條語句使用了try塊,捕獲了程序因?yàn)槌?而產(chǎn)生的異常情況,之后程序會繼續(xù)向下執(zhí)行,輸出“進(jìn)入catch代碼塊”,“進(jìn)入finally代碼塊”。)publicclassTest01publicstaticvoidmain(String口args)try

20、intx=2/0;catch(Exceptione)finally)代碼二:不能,final修飾shout,不能被重寫(程序編譯不通過,這是因?yàn)樵诔绦蛑惺褂昧薴inal關(guān)鍵字修飾Animal類,使得Animal類不能被繼承。shout()方法中同樣使用了final關(guān)鍵字,使得該方法不能被重寫。)finalclassAnimalpublicfinalvoidshout()碼一:不能,RunHandler沒有繼承Thread,不能用Thread創(chuàng)建對象(程序不能編譯通過,因?yàn)镽unHandler類沒有實(shí)現(xiàn)Runnable接口,因此RunHandler的實(shí)例對象不能作為參數(shù)傳遞給Thread的構(gòu)造方

21、法。)classRunHandlerpublicvoidrun()"run");publicclassTestpublicstaticvoidmain(String口args)Threadt=newThread(newRunHandler();();2 .代碼二:this?is?run(程序不能編譯通過,因?yàn)門hread的子類A重寫的run()方法的訪問級別不能低于父類run()方法的。訪問級別)publicclassAextendsThreadprotectedvoidrun()publicstaticvoidmain(String口args)Aa=newA();();3

22、 .代碼三:Exception(程序不能編譯通過,因?yàn)橥椒椒ㄖ姓{(diào)用wait()方法的對象必須為同步鎖對象)publicclassTestprivateObjectobj=newObject();publicsynchronizedvoida()try();改()catch(InterruptedExceptione)publicstaticvoidmain(String口args)newTest().a();4 .為了使下面的程序能夠輸出"Threadisrunning”,請?jiān)谠诳崭裉幪钌舷鄳?yīng)的代碼。publicclassBimplementsRunnablepublicstati

23、cvoidmain(String口args)Threadt=newThread(newB();()tart();newThread(newRunnable()publicvoidrun().start()1、sleep()和wait()有什么區(qū)別?調(diào)用sleep()方法,正在執(zhí)行的線程主動讓出CPU*執(zhí)行其他線程,在sleep()方法指定的時間過后,CPU會回到這個線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進(jìn)入了同步鎖,sleep()方法并不會釋放鎖,即使當(dāng)前線程使用sleep()方法讓出了CPU但其它被同步鎖擋住了的線程也無法得到執(zhí)行。wait()在一個已經(jīng)進(jìn)入了同步鎖的線程內(nèi)進(jìn)行調(diào)用,讓當(dāng)前線程暫時

24、讓出同步鎖,以便其它正在等待此鎖的線程可以得到同步鎖并運(yùn)行。當(dāng)其它線程調(diào)用了notify()方法后,調(diào)用wait()方法的線程就會解除wait狀態(tài),當(dāng)再次獲得同步鎖后,程序可以繼續(xù)向下執(zhí)行。六、編程題請按照題目的要求編寫程序并給出運(yùn)行結(jié)果。1、通過繼承Thread類的方式創(chuàng)建兩個線程,在Thread構(gòu)造方法中指定線程的名字,并將這兩個線程的名字打印出來。2、通過實(shí)現(xiàn)Runnable接口的方式創(chuàng)建一個新線程,要求main線程才T印100此次"main",新線程打印50次“neW。3、模擬傳智播客的三個老師同時分發(fā)80份學(xué)習(xí)筆記,每個老師相當(dāng)于一個線程。4、編寫10個線程,第一

25、個線程從1加到10,第二個線程從11加到20.第十個線程從91加到100,最后再把十個線程結(jié)果相加。第5章JavaAPI一、填空題1、在Java中定義了兩個類來封裝對字符串的操作,它們分別是String_和_StringBuffer。2、Java中的操作日期的類有_Date、_Calendar、DateFormat等。3、在程序中若想取得一個Runtime實(shí)例,則可以調(diào)用Runtime類的靜態(tài)方法getRnutime()。4、Math類中用于計(jì)算所傳遞參數(shù)平方根的方法是_sqrt()。5、Java中專門用于將日期格式化為字符串的類是_DateFormat。6、Math類中有兩個靜態(tài)常量PI和E

26、,分別代表數(shù)學(xué)常量_兀和_e。7、Java中的用于產(chǎn)生隨機(jī)數(shù)的類是_Random,它位于包中。8、String類中用于返回字符串字符個數(shù)的方法是_length()。9、System類中所提供的屬性和方法都是_靜態(tài)的,想要引用這些屬性和方法,直接使用System類調(diào)用即可。10、已知sb為StringBuffer的一個實(shí)例,且()的值為"abcde”,則執(zhí)行()后,()的值為_"edcba_"。二、判斷題1、String對象和StringBuffer對象都是字符串變量,創(chuàng)建后都可以修改。錯2、用運(yùn)算符“=”比較字符串對象時,如果兩個字符串的值相同,結(jié)果為true。錯

27、3、System類中的currentTimeMillis()方法返回一個long類型的值。對4、Date、Calendar以及DateFormat類都位于包中。錯分別、String類的方法replace(CharSequencesrt1,CharSequencesrt2)返回一個新的字符串,它是通過用srt2替換此字符串中出現(xiàn)的所有srtl得到的。對三、選擇題。1、先閱讀下面的程序片段:CStringstr="abccdefcdh"String口arr=("c");程序執(zhí)行后,打印的結(jié)果是幾?A、2個®3個C4個D、5個2、以下都是Math類的

28、常用方法,其中用于計(jì)算絕對值的方法是哪個?CAceil()B、floor()C、abs()D、random。3、Random對象能夠生成以下哪種類型的隨機(jī)數(shù)?DAintB、stringC、doubleD、A和C4、Strings="abcdedcba"則(3,4)返回的字符串是以下選項(xiàng)中的哪個?CAcdB、deC、dDe5、假若indexOf()方法未能找到所指定的子字符串,則返回以下選項(xiàng)中的哪個?AfalseB、0C-1D、以上答案都不對6、要產(chǎn)生20,999之間的隨機(jī)整數(shù)可以使用以下哪個表達(dá)式?BA.(int)(20+()*97)+(int)()*980)C.(int)

29、()*999+(int)()*9807、以下Math類的方法中,通過哪個方法運(yùn)算后,結(jié)果為?D(C)()四舍五入()()小于參數(shù)最大整數(shù)()大于參數(shù)最小整數(shù)8、下面的程序段執(zhí)行后,輸出的結(jié)果是以下哪個選項(xiàng)?AStringBufferbuf=newStringBuffer("Beijing2008");(7,"");ABeijing2008B、Beijing2008c、Beijing2008D、Beijing#20089、閱讀下面的程序:Apublic?class?test?public?static?void?main(String?args)?int?

30、i;?float?f?=?;?double?d?=?;?i?=?(int)(f)?*?(int)(d);?程序執(zhí)行后,運(yùn)行結(jié)果為以下哪個選項(xiàng)?A?9?B、?5?C、6?D、?10、先閱讀下面的程序片段:BStringstr1=newString("java");Stringstr2=newString("java");StringBufferstr3=newStringBuffer("java");對于上述定義的變量,以下表達(dá)式的值為true的是哪個?A?str1=str2;?B、(str2);?C、str1=str3;?D、以上都不

31、對四、程序分析題。閱讀下面的程序,分析代碼是否能編譯通過,如果能編譯通過,請列出運(yùn)行的結(jié)果。如果不能編譯通過,請說明原因。代碼一:5-5publicclassApublicstaticvoidmain(String口args););代碼二:():15(0):dlastIndexOf(m):"10substring(2,4):feindexOf(g):5publicclassBpublicstaticvoidmain(String口args)Strings="dfferghuklmbdfd"+();+(0);m):"+('m');+(2,4

32、);+('g');五、簡答題?1、String和StringBuffer有什么區(qū)別?String類是不可變類,即字符串值一旦初始化后就不可能改變。StringBuffer是可變字符串類,類似String的緩沖區(qū),可以修改字符串的值。2、Date和Calender類有什么區(qū)別和聯(lián)系?Date類用來表示某個特定的瞬間,能夠精確到毫秒。而在實(shí)際應(yīng)用中,往往需要把一個日期中的年、月、日等信息單獨(dú)返回進(jìn)行顯示或處理,這個類中的大部分方法都已被標(biāo)記過時。Calender類基本取代了Date類,該類中定義了一系列用于完成日期和時間字段操作的方法。Calendar的getTime()方法,ge

33、tTime()返回一個表示Calendar時間值的Date對象,同時Calendar有一個setTime(Datedate)方法,setTime()方法接收一個Date對象,將Date對象表示的時間值設(shè)置給Calendar對象,通過這兩個方法就可以完成Date和Calendar對象之間的轉(zhuǎn)六、編程題請按照題目的要求編寫程序并給出運(yùn)行結(jié)果1、編寫一個程序,實(shí)現(xiàn)字符串大小寫的轉(zhuǎn)換并倒序輸出,要求如下1)使用for循環(huán)將字符串“HelloWorld”從最后一個字符開始遍歷。2)遍歷的當(dāng)前字符如果是大寫字符,就使用toLowerCase()方法將其轉(zhuǎn)換為小寫字符,反之則使用toUpperCase()方

34、法將其轉(zhuǎn)換為大寫字符3)定義一個StringBuffer對象,調(diào)用append。方法依次添加遍歷的字符,最后調(diào)用StringBuffer對象的toString()方法,并將得到的結(jié)果輸出。2、計(jì)算從今天算起,100天以后是幾月幾號,并格式化成xxxx年x月x日的形式打印出來。提示:1)調(diào)用Calendar類的add()方法計(jì)算100天后的日期2)調(diào)用Calendar的getTime()方法返回Date類型對象2)使用FULL格式的DateFormat對象,調(diào)用format()方法格式化Date對象3、利用Random類來產(chǎn)生5個2050之間的隨機(jī)整數(shù)。提示:n-m(n、m均為整數(shù),n<m

35、)之間的隨機(jī)數(shù)的公式為n+(newRandom().nextInt(m-n+1)。第6章集合類一、填空題1、JDK中提供了一系列可以存儲任意對象的類,統(tǒng)稱為。2、在創(chuàng)建TreeSet對象時,可以傳入自定義的比較器,自定義比較器需要實(shí)現(xiàn)接口。3、Collection有兩個子接口分別是List和Set,List集合的特點(diǎn)是,Set集合的特點(diǎn)是。4、使用Iterator遍歷集合時,首先需要調(diào)用方法判斷是否存在下一個元素,若存在下一個元素,則調(diào)用方法取出該元素。5、集合按照存儲結(jié)構(gòu)的不同可分為單列集合和雙列集合,單列集合的根接口是,雙列集合的根接口是。6、Map集合中的元素都是成對出現(xiàn)的,并且都是以、

36、的映射關(guān)系存在。7、Iterator有一個子類,不僅可以對集合進(jìn)行從前向后遍歷,還可以從后向前遍歷,該類是。8、List集合的主要實(shí)現(xiàn)類有、,Set集合的主要實(shí)現(xiàn)類有、Map集合的主要實(shí)現(xiàn)類有、。9、Map集合中存儲元素需要調(diào)用方法,要想根據(jù)該集合的鍵獲取對應(yīng)的值需要調(diào)用方法。10、包中提供了一個專門用來操作集合的工具類,這個類是,還提供了一個專門用于操作數(shù)組的工具類,這個類是。二、判斷題1、Set集合是通過鍵值對的方式來存儲對象的。2、集合中不能存放基本數(shù)據(jù)類型,而只能存放引用數(shù)據(jù)類型。3、如果創(chuàng)建的TreeSet集合中沒有傳入比較器,則該集合中存入的元素需要實(shí)現(xiàn)Comparable接口。4

37、、使用Iterator迭代集合元素時,可以調(diào)用集合對象的方法增刪元素。5、LinkedList在內(nèi)部維護(hù)了一個雙向循環(huán)鏈表,每一個元素節(jié)點(diǎn)都包含前一個元素節(jié)點(diǎn)和后一個元素節(jié)點(diǎn)的引用。三、選擇題1、要想保存具有映射關(guān)系的數(shù)據(jù),可以使用以下哪些集合?(多選)A、ArrayListBTreeMapC、HashMapD>TreeSet2、Java語言中,集合類都位于哪個包中?A、3、使用Iterator時,判斷是否存在下一個元素可以使用以下哪個方法?A、next()B、hash()C、hasPrevious()D、hasNext()4、關(guān)于foreach循環(huán)的特點(diǎn),以下說法哪些是正確的?(多選)

38、A、foreach循環(huán)在遍歷集合時,無需獲得容器的長度B、foreach循環(huán)在遍歷集合時,無需循環(huán)條件,也無需迭代語句C、foreach循環(huán)在遍歷集合時非常繁瑣D、foreach循環(huán)的語法格式為:for(容器中元素類型臨時變量:容器變量)。5、在程序開發(fā)中,經(jīng)常會使用以下哪個類來存儲程序中所需的配置?AHashMapBTreeSetC、PropertiesD、TreeMap6、使用Enumeration遍歷集合時,需要使用以下哪些方法?(多選)AhasMoreElements()B、nextElement()C、next()D、hashNext()7、要想集合中保存的元素沒有重復(fù)并且按照一定的

39、順序排列,可以使用以下哪個集合?A、LinkedListB、ArrayListC、hashSetD、TreeSet8、下列哪些說法是正確的?(多選)A、LinkedList集合在增刪元素時效率較高B、ArrayList集合在查詢元素時效率較高C、HashMap不允許出現(xiàn)一對null鍵null值D、HashSet集合中元素可重復(fù)并且無序9、以下哪些方法是LinkedList集合中定義的?(多選)AgetLast()B、getFirst()C、remove(intindex)D、next()10、獲取單列集合中元素的個數(shù)可以使用以下哪個方法?Alength()B、size()C、get(intin

40、dex)D、add(Objectobj)四、分析題閱讀下面的程序,分析代碼是否能編譯通過,如果能編譯通過,請列出運(yùn)行的結(jié)果。如果不能編譯通過,請說明原因。代碼一:*.;publicclassTest01publicstaticvoidmain(String口args)TreeSetts=newTreeSet();("b");("a");("c");("c");Iteratorit=();while()代碼二:importpublicclassTest02publicstaticvoidmain(String口arg

41、s)ArrayListlist=newArrayList();("a");("b");("c");for(Stringobj:list)代碼三:*.;publicclassTest03publicstaticvoidmain(String口args)ArrayListlist=newArrayList();("demo_1");("demo_2");("demo_3");ListIteratorit=();while()Objectobj=();");代碼四:*.;

42、importpublicclassTest04publicstaticvoidmain(String口args)Mapmap=newHashMap();(1,"Tom");(2,"Lucy");(3,"Annie");SetkeySet=();Iteratorit=();while()Objectkey=();(key);五、簡答題1、什么是集合,請列舉集合中常用的類和接口?2、集合中的List、Set、Map有什么區(qū)別?3、請說說Collection和Collections的有什么區(qū)別?六、編程題請按照題目的要求編寫程序并給出運(yùn)行結(jié)

43、果。1、使用ArrayList集合,對其添加10個不同的元素,并使用Iterator遍歷該集合。提示: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屬性進(jìn)行比較,如果name相同,hashCode()方法的返回值

44、相同,equals方法返回true。3、選擇合適的Map集合保存5位學(xué)員的學(xué)號和姓名,然后按學(xué)號的自然順序的倒序?qū)⑦@些鍵值對一一打印出來。提示:1)創(chuàng)建TreeMap集合。2)使用put()方法將學(xué)號(“1”、“2”、“3”、“4”、“5”)和姓名(“Lucy”、“John”、“Smith”、“Aimee"、"Amanda)存儲到Map中,存的時候可以打亂順序觀察排序后的效果。3)使用()獲取鍵的Set集合。4)使用Set集合的iterator()方法獲得Iterator對象用于迭代鍵。5)使用Map集合的get()方法獲取鍵所對應(yīng)的值。第7章IO(輸入輸出)一、填空題1、

45、Java中的IO流,按照傳輸數(shù)據(jù)不同,可分為和。2、在Java中,類用于操作磁盤中文件和目錄,位于包中。3、在Java中,_類用來把兩個或更多的InputStream輸入流對象合并為單個InputStream輸入流對象使用。4、Java中提供了一個類,它不但具有讀寫文件的功能,并且可以隨機(jī)地從文件的任何位置開始執(zhí)行讀寫數(shù)據(jù)的操作。5、在Java中,能實(shí)現(xiàn)線程間通信的流是。6、 Java中提供了一個可以在讀文件的同時記錄行號的類,這個類是,它是的直接子類,它通過和方法設(shè)置和獲取當(dāng)前行號。7、 InputStreamReader類是用于將轉(zhuǎn)換為。8、 是類的對象,稱為標(biāo)準(zhǔn)輸出流,調(diào)用System類

46、的方法可以實(shí)現(xiàn)標(biāo)準(zhǔn)輸出流的重定向。9、 Java中一個字符占用兩個字節(jié),所有字符采用的都是碼表。10、 BufferedWriter的方法可以寫入一個換行符。二、判斷題1、如果一個File表示目錄下有文件或者子目錄,調(diào)用delete()方法也可以將其刪除。2、裝飾設(shè)計(jì)模式中,裝飾對象應(yīng)該包含一個被裝飾對象的引用。3 、使用ObjectInputStream與ObjectOutputStream類來讀取或存儲的對象必須要實(shí)現(xiàn)Serializable接口,否則程序?qū)⒊霈F(xiàn)NotSerializableException異常。4 、InputStream類的close()方法是用于關(guān)閉流并且釋放流所占

47、的系統(tǒng)資源。5 、一般來說,把字符轉(zhuǎn)換成計(jì)算機(jī)識別的字節(jié)序列稱為解碼,而把字節(jié)序列轉(zhuǎn)換為普通人能看懂的明文字符稱為編碼。三、選擇題1、下面選項(xiàng)中,哪些是標(biāo)準(zhǔn)輸入輸出流?(多選)A、InputStreamD、OutputStream2、以下選項(xiàng)中,哪個是FileOutputStream的父類?、File類中以字符串形式返回文件絕對路徑的的方法是?A、getParent()B>getName()C、getAbsolutePath()D、getPath()4、下面哪些是常用的字符碼表?(多選)A、ASCIIB、UTF-8GISO8859-1D、GB23125、以下創(chuàng)建RandomAccessF

48、ile類實(shí)例對象的代碼,哪些是正確的?(多選)A、RandomAccessFile(newFile(""),"rw")B、RandomAccessFile("","r")C、RandomAccessFile("")D、RandomAccessFile("","wr")6、以下哪些屬于InputStream類的方法?(多選)A、intread(byte)B、voidflush()C、voidclose()D、available。7、以下選項(xiàng)中,哪個流中使用了

49、緩沖區(qū)技術(shù)?A、BuffereOutputStreamB、FileInputStreamC、DataOutputStreamD、FileReader8、以下選項(xiàng)中,哪個是File類delete()方法返回值的類型?A、booleanB、intC、StringD、Integer9、以下選項(xiàng)中,哪個文件操作類可以實(shí)現(xiàn)一次讀入多個文件?A、FileReaderB、BufferedReaderC、FileInputStreamD、SequenceInputStream10、以下對File類的publicbooleaisFile()方法的描述,哪個是正確的?A判斷該File對象所對應(yīng)的是否是文件。日判斷

50、該File對象所對應(yīng)的是否是目錄。C返回文件的最后修改時間。D在當(dāng)前目錄下生成指定的目錄。四、程序填空題1、閱讀以下代碼,并將空處填寫完整。*;.;publicclassTest1publicstaticvoidmain(Stringargs)throwsExceptioninta=4;BufferedReaderbr=newBufferedReader(new);"請輸入一個數(shù)字");Stringinput=;intb=(input);if(b>a)intsum=b/a;"輸入錯誤");當(dāng)輸入的數(shù)字是8時,打印輸出的結(jié)果是。2、以下是使用File

51、InputStream類與FileOutputStream類復(fù)制文件。閱讀以下代碼,并將空處填寫完整。*.;classTest2publicstaticvoidmain(String口args)Stringfile1,file2;intch=0;file1=""file2=""tryFileInputStreamfis=new;fos=newFileOutputStream(file2);intsize=;while(ch=()!=-1)(ch);();();catch(IOExceptione)五、簡答題1、簡述流的概念。2、Java流被分為字節(jié)流、字

52、符流兩大流類,兩者有什么區(qū)別?3、簡要說明管道流。六、編程題按照題目需求,編寫程序并運(yùn)行1、編寫一個程序,分別使用字節(jié)流和字符流拷貝一個文本文件。提示:1)使用FileInputStream、FileOutputStream和FileReader、FileWriter分別進(jìn)行拷貝2)使用字節(jié)流拷貝時,定義一個1024長度的字節(jié)數(shù)組作為緩沖區(qū),使用字符流拷貝使用使用BufferedReader和BufferedWriter包裝流進(jìn)行包裝2、某人在玩游戲的時候輸入密碼123456后成功進(jìn)入游戲(輸錯5次則被強(qiáng)行退出),要求用程序?qū)崿F(xiàn)密碼驗(yàn)證的過程。提示:1)使用包裝為字符流讀取鍵盤輸入。2) Bu

53、fferedReader對字符流進(jìn)行包裝。調(diào)用BufferedReader的readLine()方法每次讀取一行。3)在for循環(huán)判中判斷輸入的密碼是否為“123456”,如果是則打印“恭喜你進(jìn)入游戲”,并跳出循環(huán),否則繼續(xù)循環(huán)讀取鍵盤輸入。4)當(dāng)循環(huán)完畢,密碼還不正確,則打印“密碼錯誤,結(jié)束游戲”,并調(diào)用(0)方法結(jié)束程序。第8章GUI(圖形用戶界面)一、填空題1、GUI、2、適配器3、Graphics4、事件監(jiān)聽器5、JComponent6、窗體事件、鍵盤事件、鼠標(biāo)事件、動作事件7、WindowListener、windowClosing(WindowEvente)8、模態(tài)對話框、非模態(tài)對

54、話框9、setLayout(null)10、JMenuBar、JMenuJMenuItem二、判斷題1、對2、錯3、對4、錯5、錯三、選擇題1、D2、D&ABD4ASD&ABCD7ABD8ABC9D10、C四、程序分析題1、參考答案extendsStdno=newJTextField();Name=newJTexxtField();2、參考答案(cp);(jbt);五、簡答題1、參考答案通過實(shí)現(xiàn)XxxListener接口或者繼承XxxAdapter類實(shí)現(xiàn)一個事件監(jiān)聽器類,并對處理監(jiān)聽動作的方法進(jìn)行重寫創(chuàng)建事件源對象和事件監(jiān)聽器對象調(diào)用事件源的addXxxLisntener()方

55、法,為事件源注冊事件監(jiān)聽器對象2、參考答案AWT是AbstractWindowToolKit(抽象窗口工具包)的縮寫,這個工具包提供了一套與本地圖形界面進(jìn)行交互的接口。AWT中的圖形函數(shù)與操作系統(tǒng)所提供的圖形函數(shù)之間有著一一對應(yīng)的關(guān)系,當(dāng)我們利用AWT來構(gòu)件圖形用戶界面的時候,我們實(shí)際上是在利用操作系統(tǒng)所提供的圖形庫。由于不同操作系統(tǒng)的圖形庫所提供的功能是不一樣的,在一個平臺上存在的功能在另外一個平臺上則可能不存在。為了實(shí)現(xiàn)Java語言所宣稱的"一次編譯,到處運(yùn)行”的概念,AWT不得不通過犧牲功能來實(shí)現(xiàn)其平臺無關(guān)性,也就是說,AWT所提供的圖形功能是各種通用型操作系統(tǒng)所提供的圖形功能

56、的交集。由于AWT是依靠本地方法來實(shí)現(xiàn)其功能的,我們通常把AWT控件稱為重量級控件。Swing是在AWT的基礎(chǔ)上構(gòu)建的一套新的圖形界面系統(tǒng),它提供了AWT所能夠提供的所有功能,并且用純粹的Java代碼對AWT的功能進(jìn)行了大幅度的擴(kuò)充。由于在Swing中沒有使用本地方法來實(shí)現(xiàn)圖形功能,我們通常把Swing控件稱為輕量級控件。AW怵口Swing之間的基本區(qū)別:AWT是基于本地方法的C/C+程序,其運(yùn)行速度比較快;Swing是基于AWT勺Java程序,其運(yùn)行速度比較慢。對于一個嵌入式應(yīng)用來說,目標(biāo)平臺的硬件資源往往非常有限,而應(yīng)用程序的運(yùn)行速度又是項(xiàng)目中至關(guān)重要的因素。在這種矛盾的情況下,簡單而高效的AWT當(dāng)然成了嵌入式Java的第一選擇。而在普通的基于PC或者是工作站的標(biāo)準(zhǔn)Java應(yīng)用中,硬件資源對應(yīng)用程序所造成的限制往往不是項(xiàng)目中的關(guān)鍵因素,所以

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論