Java程序設(shè)計(jì)課后練習(xí)答案_第1頁
Java程序設(shè)計(jì)課后練習(xí)答案_第2頁
Java程序設(shè)計(jì)課后練習(xí)答案_第3頁
Java程序設(shè)計(jì)課后練習(xí)答案_第4頁
Java程序設(shè)計(jì)課后練習(xí)答案_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《Java程序設(shè)計(jì)》課后練習(xí)答案第一章Java概述一、選擇題(A)是在Dos命令提示符下編譯Java程序的命令,(B)是運(yùn)行Java程序的命令。javacjavajavadocjavaw(D)不是Java程序中有效的注釋符號(hào)。///**//***/*/*/(B)不是Java語言的特點(diǎn)。面向?qū)ο笞詣?dòng)檢查語法錯(cuò)誤跨平臺(tái)解釋執(zhí)行Java編譯器會(huì)將Java程序轉(zhuǎn)換為(C)可執(zhí)行代碼目標(biāo)代碼字節(jié)碼機(jī)器代碼Java源文件的擴(kuò)展名是(D).class B. .jar C. .jav D. .java二、簡(jiǎn)答題Java的跨平臺(tái)的含義是什么?為什么Java可以跨平臺(tái)?Java語言的一個(gè)非常重要的特點(diǎn)就是平臺(tái)無關(guān)性。它是指用Java編寫的應(yīng)用程序編譯后不用修改就可在不同的操作系統(tǒng)平臺(tái)上運(yùn)行。Java之所以能平臺(tái)無關(guān),主要是依靠Java虛擬機(jī)(JVM)來實(shí)現(xiàn)的。JVM是一種抽象機(jī)器,它附著在具體操作系統(tǒng)之上,本身具有一套虛機(jī)器指令,并有自己的棧、寄存器組等。Java編程人員在編寫完Java程序后,Java編譯器將Java源代碼文件編譯后生成字節(jié)碼文件(一種與操作系統(tǒng)無關(guān)的二進(jìn)制文件)。字節(jié)碼文件通過Java虛擬機(jī)(JVM)里的類加載器加載后,經(jīng)過字節(jié)碼校驗(yàn),由解釋器解釋成當(dāng)前電腦的操作系統(tǒng)能夠識(shí)別的目標(biāo)代碼并最終運(yùn)行。以下圖展示了Java程序從編譯到最后運(yùn)行的完整過程。簡(jiǎn)述Java語言的特點(diǎn)Java具有以下特點(diǎn):簡(jiǎn)單性Java語言的語法規(guī)則和C語言非常相似,只有很少一部分不同于C語言,并且Java還舍棄了C語言中復(fù)雜的數(shù)據(jù)類型(如:指針和結(jié)構(gòu)體),因此很容易入門和掌握??煽啃院桶踩訨ava從源代碼到最終運(yùn)行經(jīng)歷了一次編譯和一次解釋,每次都有進(jìn)行檢查,比其它只進(jìn)行一次編譯檢查的編程語言具有更高的可靠性和安全性。面向?qū)ο驤ava是一種完全面向的編程語言,因此它具有面向?qū)ο缶幊陶Z言都擁有的封裝、繼承和多態(tài)三大特點(diǎn)。平臺(tái)無關(guān)和解釋執(zhí)行Java語言的一個(gè)非常重要的特點(diǎn)就是平臺(tái)無關(guān)性。它是指用Java編寫的應(yīng)用程序編譯后不用修改就可在不同的操作系統(tǒng)平臺(tái)上運(yùn)行。Java之所以能平臺(tái)無關(guān),主要是依靠Java虛擬機(jī)(JVM)來實(shí)現(xiàn)的。Java編譯器將Java源代碼文件編譯后生成字節(jié)碼文件(一種與操作系統(tǒng)無關(guān)的二進(jìn)制文件)。字節(jié)碼文件通過Java虛擬機(jī)(JVM)里的類加載器加載后,經(jīng)過字節(jié)碼校驗(yàn),由解釋器解釋成當(dāng)前電腦的操作系統(tǒng)能夠識(shí)別的目標(biāo)代碼并最終運(yùn)行。下圖展示了Java程序從編譯到最后運(yùn)行的完整過程。分布式分布式包括數(shù)據(jù)分布和操作分布,而Java支持WWW客戶機(jī)/服務(wù)器計(jì)算模式,因此也支持這兩種分布式。多線程Java在兩方面支持多線程。一方面,Java環(huán)境本身就是多線程的。若干個(gè)系統(tǒng)線程運(yùn)行負(fù)責(zé)必要的無用單元回收,系統(tǒng)維護(hù)等系統(tǒng)級(jí)操作;另一方面,Java語言內(nèi)置多線程控制,可以大大簡(jiǎn)化多線程應(yīng)用程序開發(fā)。如果操作系統(tǒng)本身不支持多線程,Java的多線程特性可能就表現(xiàn)不出來。三、綜合編程題請(qǐng)編寫一個(gè)簡(jiǎn)單的Java程序能夠輸出“這是我的第一個(gè)Java程序”。(注意為程序添加合適的注釋和文檔注釋)。/***第一個(gè)java程序*/publicclassDemo{ /** *main方法,程序的起點(diǎn) */ publicstaticvoidmain(String[]args){ //向控制臺(tái)輸出 System.out.println("這是我的第一個(gè)Java程序");}}第二章Java語法基礎(chǔ)一、選擇題下面哪個(gè)單詞是Java語言的關(guān)鍵字(B)?A.Double B.this C.string D.bool下面屬于Java關(guān)鍵字的是(D)。A.NULL B.IF C.Do D.goto在啟動(dòng)Java應(yīng)用程序時(shí)可以通過main()方法一次性地傳遞多個(gè)參數(shù)。如果傳遞的參數(shù)有多個(gè),可以用空格將這些參數(shù)分割;如果某一個(gè)參數(shù)本身包含空格,可以使用(B)把整個(gè)參數(shù)引起來。單引號(hào)B.雙引號(hào)下面哪個(gè)是Java語言中正確的標(biāo)識(shí)符(BD)。A.5x B.$x C.abc@ D.comJava語言中,下列標(biāo)識(shí)符錯(cuò)誤的是(D)。A._abc B.abc C.ABC D.5abc在Java中,整型常量不可以是(A)。A.double B.Long C.int D.byte在Java中,不屬于整數(shù)常量的是(D)。A.100 B.100L C.0x100AD.6.0f下面哪個(gè)語句能定義一個(gè)字符變量chr(B)。A.charchr=’abcd’; B.charchr=’\uabcd’;C.charchr=”abcd”; D.charchr=\uabcd;下面哪個(gè)是對(duì)字符串s1的不正確定義(CD)。A.Strings1=”abcd”; B.Strings1;C.Strings1=‘a(chǎn)bcd\0’; D.Strings1=”\abcd”;下面哪個(gè)范圍是char型的取值范圍(C)。-256~255B.-(2^15)~(2^15)-1C.\u0000’~‘\uffff’D.0~32767下面哪條語句不能定義一個(gè)float型的變量f1(ABD)。A.floatf1=3.1415E10B.floatf1=3.14C.floatf1=3.1415FD.f1=3.14F下列運(yùn)算結(jié)果為float的是(C)。A.100/10B.100*10C.100.0+10 D.100-10數(shù)組中可以包含什么類型的元素(D)。A.int型B.string型C.數(shù)組D.以上都可以Java中定義數(shù)組名為xyz,下面哪項(xiàng)可以得到數(shù)組元素的個(gè)數(shù)(B)。A.xyz.length()B.xyz.lengthC.len(xyz)D.ubound(xyz)下面哪條語句定義了3個(gè)元素的數(shù)組(A)。A.int[]a={20,30,40};B.inta[]=newint(3);C.int[3]array;D.int[]arr;二、簡(jiǎn)答題Java有哪些基本的數(shù)據(jù)類型?寫出這些基本數(shù)據(jù)類型所占用的最大空間(用字節(jié)描述)。(1)數(shù)字型(number),具體又分為:a.整型(integers),整型又包括:=1\*GB3①字節(jié)整數(shù)(byte,8bits)=2\*GB3②短整數(shù)(short,16bits)=3\*GB3③整數(shù)(int,32bits)=4\*GB3④長(zhǎng)整數(shù)(long,64bits)b.實(shí)型(realnumbers),具體又分為:=1\*GB3①單精度(float,32bits)=2\*GB3②雙精度(double,64bits)(2)字符型(char,16-bitUnicode字符)(3)布爾型(boolean)。說明Java字符編碼的類型與特點(diǎn)。Java字符編碼的類型為Unicode,具有以下特點(diǎn):(1)Unicode是16比特的字符編碼,其支持當(dāng)前世界上絕大多數(shù)的語言;(2)Unicode給每個(gè)字符提供了一個(gè)唯一的編碼表示,不論是什么平臺(tái)、程序或語言;(3)Windows系統(tǒng)(Windows2000版本)、Java、XML、LDAP等已支持Unicode;(4)Unicode實(shí)現(xiàn)了ISO/IEC10646標(biāo)準(zhǔn);寫出Java中六個(gè)常用的轉(zhuǎn)義字符。\b退格\t制表符\n換行(Newline)\r回車(Carriagereturn)\'單引號(hào)下面的幾個(gè)標(biāo)示符哪些是正確的,哪些是錯(cuò)誤的,如果是錯(cuò)誤的,請(qǐng)說明原因。MyClass,_isHis,3JavaProgram,_$asdf,Java-Visual-MachineMyClass:正確,符合標(biāo)識(shí)符的組成規(guī)則。_isHis:正確,符合標(biāo)識(shí)符的組成規(guī)則。3JavaProgram:錯(cuò)誤,因?yàn)榈?個(gè)符號(hào)不能為數(shù)字。_$asdf:正確,符合標(biāo)識(shí)符的組成規(guī)則。Java-Visual-Machine:錯(cuò)誤,標(biāo)識(shí)符不能為保留字。說出常量與變量的定義并舉例說明。常量是指程序執(zhí)行過程中,值保持不變的量,類型劃分如下:?整型常量?實(shí)型常量?布爾型常量?字符型常量?字符串常量如整型常量:?起始最大整數(shù)(正)最大長(zhǎng)整數(shù)(正)舉例十進(jìn)制0,1~921474836479223372036854775807L23,+567,-12,0,1234八進(jìn)制00177777777770777777777777777777777L034,0175,-0777L十六進(jìn)制0x0x7FFFFFFF0x7FFFFFFFFFFFFFFFL0xFF,0x45L變量是指在程序執(zhí)行過程中,值可以改變的量,類型劃分為:整型變量、實(shí)型變量、字符型變量、字符串變量、布爾變量等。如:intx=2,就定義了一個(gè)整型變量x并且賦值為2。什么是強(qiáng)制類型轉(zhuǎn)換?并說明其運(yùn)用場(chǎng)合。顯型類型轉(zhuǎn)換是強(qiáng)制類型轉(zhuǎn)換,它是一種窄化轉(zhuǎn)換(narrowingconversion),如:doublea=1.5;floatb=a;System.out.println("b="+b);編譯:"possiblelossofprecision"數(shù)據(jù)精度丟失,數(shù)據(jù)丟失。強(qiáng)制類型轉(zhuǎn)換一般運(yùn)用在?二元運(yùn)算符的二個(gè)操作數(shù)類型不同?表達(dá)式值的類型與變量的類型不同描述Java程序的構(gòu)成。如何判斷Java程序的主類?下面的程序有哪些錯(cuò)誤并改正,該程序的源代碼應(yīng)當(dāng)保存為什么名字的文件?PublicclassMyClass{Publicstaticvoidmain(){System.out.printIn(“mynameis…”);}System.out.printIn(“theend!”);}Java程序的主類中包含main(),而其它類中沒有;該程序的源代碼應(yīng)當(dāng)保存為MyClass.java。另外該程序中包含以下的錯(cuò)誤:Public的第一個(gè)字符應(yīng)當(dāng)小寫;定界符“”應(yīng)當(dāng)改為"";printIn應(yīng)該為println\System.out.printIn(“theend!”);代碼應(yīng)放在方法中結(jié)構(gòu)化程序設(shè)計(jì)有哪三種基本流程?分別對(duì)應(yīng)Java中的那些語句?結(jié)構(gòu)化程序設(shè)計(jì)有下面三種基本流程:順序結(jié)構(gòu)語句,條件選擇語句,循環(huán)控制語句,跳轉(zhuǎn)/轉(zhuǎn)向語句。條件選擇語句對(duì)應(yīng)Java中的if,if-else,嵌套的if-else,條件運(yùn)算符,switch-case。循環(huán)控制語句對(duì)應(yīng)Java中的for,while,do-while語句。跳轉(zhuǎn)/轉(zhuǎn)向語句對(duì)應(yīng)Java中的contonue,break,return語句。在一個(gè)循環(huán)中使用break,continue,return的差別。break:跳出(中止)循環(huán)continue:結(jié)束本次循環(huán)return:方法返回?cái)?shù)組的定義,特點(diǎn)與分類。如何進(jìn)行數(shù)組的初始化?數(shù)組的定義:數(shù)組是一組同類型的變量或?qū)ο蟮募稀?shù)組的特點(diǎn):數(shù)組的類型可以是基本類型,或類和接口;數(shù)組中每個(gè)元素的類型相同;引用數(shù)組元素通過數(shù)組名[下標(biāo)];數(shù)組下標(biāo)(數(shù)組的索引)從0開始。數(shù)組是一種特殊的對(duì)象(Object),可以定義類型(聲明);創(chuàng)建數(shù)組(分配內(nèi)存空間);釋放(Java虛擬機(jī)完成)。數(shù)組分類:一維數(shù)組、多維數(shù)組。

第三章面向?qū)ο蟮膶?shí)現(xiàn)選擇題在Java中,用package說明一個(gè)包時(shí),該包的層次結(jié)構(gòu)必須是(B)。A.與文件的結(jié)構(gòu)相同 B.與文件的目錄層次相同C.與文件的類型相同 D.與文件大小相同下列構(gòu)造方法的調(diào)用方式中,正確的是(C)。A.按照一般方法調(diào)用 B.由用戶直接調(diào)用 C.可通過new自動(dòng)調(diào)用 D.被系統(tǒng)調(diào)用int型public成員變量MAX_LENGTH,該值保持為常數(shù)100,則定義這個(gè)變量的語句是(D)。A.publicintMAX_LENGTH=100 B.finalintMAX_LENGTH=100C.publicconstintMAX_LENGTH=100 D.publicfinalintMAX_LENGTH=100在Java中,以下敘述不正確的是(B)構(gòu)造方法名與類名相同。構(gòu)造方法不是用來完成初始化的。構(gòu)造方法由new操作調(diào)用,而不能被用戶直接調(diào)用。構(gòu)造方法沒有返回類型。在Java中,下面的敘述哪個(gè)是不正確的?(D)類的靜態(tài)方法可以在該類的對(duì)象被創(chuàng)建前調(diào)用類的靜態(tài)方法不能訪問該類的非靜態(tài)方法abstract修飾符可以出現(xiàn)在類或方法的前面,但不能出現(xiàn)在變量之前final修飾符可以出現(xiàn)在類或變量之前,但不能出現(xiàn)在方法之前在Java里,下列選項(xiàng)(D)不是實(shí)現(xiàn)面向?qū)ο笏枷氲臋C(jī)制。封裝 B.繼承多態(tài) D.數(shù)據(jù)類型轉(zhuǎn)換類Worker是類Person的子類,Worker構(gòu)造方法中有一句"super();",該語句是什么意思?(C)調(diào)用類Worker中定義的super()方法調(diào)用類Person中定義的super()方法調(diào)用類Person的構(gòu)造函數(shù)語法錯(cuò)誤給定Java程序,如下:編譯運(yùn)行Test.java,結(jié)果是(C)。publicclassTest{privatestaticfinalintcounter=10;publicstaticvoidmain(String[]args){System.out.println(counter++);}}A. 10 B. 11C. 編譯錯(cuò)誤 D. 運(yùn)行時(shí)出現(xiàn)異常 給定如下Java代碼,編譯時(shí)會(huì)在(D)出現(xiàn)錯(cuò)誤。(只選擇一項(xiàng)) classParent{ }classChildextendsParent{publicstaticvoidmain(String[]args){Parentp1=newChild();//第一行 Parentp2=newParent();//第二行 Childc1=newChild();//第三行 Childc2=newParent();//第四行 } }第一行 B.第二行第三行 D.第四行在Java中,某類方法使用下列(BC)訪問修飾符修飾后,可以被其的子類訪問。private B.protectedpublic D.friendly在Java語言中,如果你有下面的類定義:abstractclassShape{abstractvoiddraw();}classSquareextendsShape{}以下描述正確的是(B)一切成功編譯Shape可以編譯,Square不能編譯Square可以編譯,Shape不能編譯Square,Shape都不能編譯分析下列Java代碼:classA{publicstaticvoidmain(String[]args){method();}staticvoidmethod(){System.out.println("Hello");System.exit(0);System.out.println("good-bye");}}編譯運(yùn)行后,輸出結(jié)果是(A)。"Hello" B."good-bye""Hello"后面是"good-bye" D.代碼不能編譯下表是final修飾符與變量、方法、類等一起作用的結(jié)果的對(duì)應(yīng)表,但是對(duì)應(yīng)關(guān)系存在錯(cuò)誤,請(qǐng)選擇正確的對(duì)應(yīng)關(guān)系。(C)概念 作用1 變量 A不能再產(chǎn)生子類2 方法 B一旦賦值,就不能更改3 類 C不能在子類中覆蓋1-A 2-B 3-C1-C 2-A 3-B1-B 2-C 3-A1-C 2-B 3-A有以下程序:publicclassConstOver{publicConstOver(intx,inty,intz){}}下面哪個(gè)方法重載了上面的ConstOver構(gòu)造方法?(B)protectedintConstOver(){}privateConstOver(intz,inty,bytex){}publicobjectConstOver(intx,inty,intz){}publicvoidConstOver(bytex,bytey,bytez){}有以下程序:classBaseClass{privatefloatx=1.0f;publicfloatgetVar()(returnx;)}classSubclassextendsBaseClass{privatefloatx=2.0f;//insertcodehere}下面哪個(gè)方法加到程序中的“//insertcodehere”位置是有效的重定義父類的方法。(B)protectedfloatgetVar(){returnx;}publicfloatgetVar(){returnx;}protectedfloatdoublegetVar(){returnx;}publicfloatgetVar(floatf){returnf;}指出下列程序運(yùn)行的結(jié)果(B)publicclassExample{Stringstr=newString("good");char[]ch={'a','b','c'};publicstaticvoidmain(String[]args){Exampleex=newExample();ex.change(ex.str,ex.ch);System.out.print(ex.str+"and");System.out.print(ex.ch);}publicvoidchange(Stringstr,charch[]){str="testok";ch[0]='g';}}goodandabc B.goodandgbctestokandabc D.testokandgbc下列哪些語句關(guān)于內(nèi)存回收的說明是正確的?(B)程序員必須創(chuàng)建一個(gè)線程來釋放內(nèi)存;內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存;內(nèi)存回收程序允許程序員直接釋放內(nèi)存;內(nèi)存回收程序可以在指定的時(shí)間釋放內(nèi)存對(duì)象。創(chuàng)建一個(gè)名為“MyClass.java”的文件,該文件中只有一個(gè)可被整個(gè)工程中的所有類訪問的類,那么該類的正確聲明應(yīng)為:(C)privateclassMyClassextendsObject B.classTestClassextendsObjectpublicclassMyClass D.publicclassTestClass下列敘述中,錯(cuò)誤的是(A)內(nèi)部類的名稱與定義它的類的名稱可以相同內(nèi)部類可用abstract修飾內(nèi)部類可作為其他類的成員內(nèi)部類可訪問它所在類的成員用于在子類中調(diào)用被重寫的父類方法的關(guān)鍵字是(B)thissuperThisSuper下面程序輸出結(jié)果是(A)publicclassDelta{staticbooleanfoo(charc){System.out.print(c);returntrue;}publicstaticvoidmain(String[]argv){inti=0;for(foo('A');foo('B')&&(i<2);foo('C')){i++;foo('D');}}}ABDCBDCBABCDABCD編譯錯(cuò)誤運(yùn)行時(shí)異常下列(B)修飾符可以使在一個(gè)類中定義的成員變量只能被同一包中的類訪問。private B.無修飾符public D.protected給出下列代碼,如何使成員變量m被方法fun()直接訪問?(C)classTest{privateintm;publicstaticvoidfun(){...}}將privateintm改為protectedintm將privateintm改為publicintm將privateintm改為staticintm將privateintm改為intm已知有下列類的說明,則下列哪個(gè)語句是正確的?(A)publicclassTest{privatefloatf=1.0f;

intm=12;

staticintn=1;

publicstaticvoidmain(String[]args){Testt=newTest();}}t.f; B.this.n;Test.m; D.Test.f;下列代碼的執(zhí)行結(jié)果是(A)publicclassTest{publicvoidaMethod(){staticinti=0;

i++;

System.out.println(i);}publicstaticvoidmain(String[]args){Testtest=newTest();test.aMethod();}}編譯錯(cuò)誤 B.01 D.運(yùn)行成功,但不輸出若特快訂單是一種訂單,則特快訂單類和訂單類的關(guān)系是(C)使用關(guān)系 B.包含關(guān)系繼承關(guān)系 D.無關(guān)系下列代碼中,將引起一個(gè)編譯錯(cuò)誤的行是(D)1)publicclassTest{2)intm,n;3)publicTest(){ }4)publicTest(inta){m=a;}5)publicstaticvoidmain(String[]args){6)Testt1,t2;7)intj,k;8)j=0;k=0;9)t1=newTest();10)t2=newTest(j,k);11) }12)}第3行 B.第5行第6行 D.第10行下列敘述中,錯(cuò)誤的是(D)父類不能替代子類 B.子類能夠替代父類子類繼承父類 D.父類包含子類程序閱讀題寫出以下程序的結(jié)果:publicclassTest{???privatestaticvoidprintArray(int[]arr)??{???????for(inti=0;i<arr.length;i++)???????????System.out.print(arr[i]+”,”);???????System.out.println(“\n”);???}???privatestaticvoidchangeValue(intvalue){???????value*=2;???}???privatestaticvoidchangeValue(int[]arr){???????????for(inti=0;i<arr.length;i++)???????????????arr[i]*=2;???}??publicstaticvoidmain(String[]args){?? int[]arr={1,2,3,4,5};?? changeValue(arr[0]);?? printArray(arr);?? changeValue(arr);?? printArray(arr);???}}運(yùn)行結(jié)果:1,2,3,4,5,2,4,6,8,10,指出以下程序的錯(cuò)誤,并改正:?publicclassMain{?????publicstaticfinalAobj=null;?????publicstaticvoidmain(String[]args){???????? obj=newA();?????}?}?classA{?}錯(cuò)誤:final的對(duì)象不能改變。指出以下程序的錯(cuò)誤,并改正:?publicclassTest{?????publicstaticvoidmain(String[]args){?????????MyClassobj=newMyClass();?????????obj.Info+=”,World!”;?????????System.out.println(obj.Info);?????}?}?classMyClass?{????????publicStringInfo=”Hello”;????????publicMyClass(StringInfo)?????????{????????????this.Info=Info;?????????}?}錯(cuò)誤:?MyClassobj=newMyClass();找不到匹配的構(gòu)造方法。指出下面程序的錯(cuò)誤,并改正:?abstractclassAnimal?{?publicabstract?voidsaySomething()??{????System.out.println(“你想說什么就說吧!”);????}?}?classDogextendsAnimal{? publicvoidsaySomething(){???? System.out.println(“我現(xiàn)在有了第二職業(yè):捉耗子!”);????}?}?publicclassTest{????publicstaticvoidmain(String[]args){????????Animalani=newDog();?????????ani.saySomething();?}}錯(cuò)誤:publicabstract?voidsaySomething()抽象方法不能有方法體。簡(jiǎn)答題簡(jiǎn)述繼承、方法重寫和抽象類如何支持多態(tài)性?(略)解釋什么是方法重載和重定義,并舉例說明他們的作用。(略)說明抽象類與接口的區(qū)別。(略)什么是垃圾回收,它是如何工作的?什么是finalize()?(略)舉例說明this關(guān)鍵字的作用?(略)舉例說明java中枚舉類型的用法。(略)

第四章異常和異常處理一、選擇題以下(A)和(C)是Throwable的直接子類。Error B.NullPointerExceptionException D.Assert能單獨(dú)和finally塊一起使用的塊是(A)try B.catchthrow D.throws下列異常類中,在多重catch中同時(shí)使用時(shí)(C)異常類的catch塊應(yīng)該最后列出?NullPointerException B.ArithmeticExceptionException D.ArrayIndexOutOfBoundsException程序讀入用戶輸入的一個(gè)值,要求創(chuàng)建一個(gè)自定義的異常,如果輸入值大于10,使用throw語句顯式地引發(fā)異常,異常輸出信息為"somethingwrong!",語句為(C)。if(i>10)throwException("somethingwrong!");if(i>10)throwExceptione("somethingwrong!");if(i>10)thrownewException("somethingwrong!");if(i>10)thrownewExceptione("somethingwrong!");分析下列Java代碼:classA{publicstaticvoidmain(String[]args){method(); }staticvoidmethod(){try{System.out.println("Hello");System.exit(0); }finally{System.out.println("good-bye"); } }} 編譯運(yùn)行后,輸出結(jié)果是(A)Hello B.good-byeHello D.代碼不能編譯good-bye關(guān)于捕獲錯(cuò)誤的語法try-catch-finally的下列描述正確的是(C)。try必須和catch搭配使用try可以單獨(dú)使用try-finally可以搭配使用在try塊后如果定義了finally,則不能再定義catch塊在Java中,假定有一個(gè)包含引起異常(不是一個(gè)RuntimeException)的代碼的方法,用什么方式告訴方法的調(diào)用者要捕獲該異常。(B)throwException B.throwsExceptionnewException D.不用特別指定考慮下列JAVA代碼:classA{publicstaticvoidmain(String[]args){try{System.out.println("Hello,World!");}}}這段代碼錯(cuò)誤的原因是(A)。 沒有catch和finally塊沒有拋出異常的代碼不能出現(xiàn)在try代碼塊內(nèi)如果沒有catch塊而使用try,main()會(huì)總是拋出異常classA沒有throwsIOException考慮一下代碼,編譯運(yùn)行之后,會(huì)(D) Strings=null;System.out.println(s.charAt(0));輸出null沒有輸出編譯錯(cuò)誤編譯成功,但是運(yùn)行時(shí)報(bào)NullPointerException異常研究下面的Java代碼:publicclasstestException{publicstaticvoidmain(String[]args){inta[]={0,1,2,3,4};intsum=0;try{for(inti=1;i<6;i++)sum=sum+a[i];System.out.println("sum="+sum);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("數(shù)組越界");}finally{System.out.println("程序結(jié)束");}}}輸出結(jié)果將是(C)。10數(shù)組越界程序結(jié)束10程序結(jié)束數(shù)組越界程序結(jié)束程序結(jié)束第五章java.lang包和字符串選擇題Java編程所必須的默認(rèn)引用包為(B)A.java.sys包 B.java.lang包C.java.new包 D.以上都不是在Java中,所有類的根類是(A)A.java.lang.Object B.java.lang.ClassC.java.applet.Applet D.java.awt.Frame設(shè)有下面兩個(gè)賦值語句:x1=Integer.parseInt("123");

x2=Integer.valueOf("123").intValue();

下述說法正確的是(D)。x1為int型變量,x2為Integer類的對(duì)象 x2為int型變量,x1為Integer類的對(duì)象x1、x2均為Integer類的對(duì)象x1、x2均為int型變量在Java中,存放字符串常量的對(duì)象屬于(B)類對(duì)象。?? A.Character????????????????? B.StringC.StringBuffer D.Vector已知如下定義:Stringstr="Ilove";下面(D)表達(dá)式是合法的。A.charch=str[0]; B.intlen=str.length;C.Stringto=str.delete(1,2); D.str+="China";設(shè)有以下程序段,執(zhí)行后,屏幕輸出(A)。Strings1="Ilove"+"China";Strings2=newString(s1);if(s1==s2)System.out.println("==");if(s1.equals(s2)==true)System.out.print("equals");A.equals B.== C.==equals D.不輸出下列方法中,不屬于類String的方法是(D)。A.toLowerCase() B.replace() C.charAt() D.append()有下列程序:publicclassaa{publicstaticvoidmain(String[]args){Strings="18.03";try{doublenumber1=Double.parseDouble(s);System.out.print(number1);intnumber2=Integer.parseInt(s);System.out.println(""+number2);}catch(NumberFormatExceptionnfe){System.out.println("Sorry");}catch(Exceptione){}}}執(zhí)行結(jié)果是(C)。18.03 B.Sorry C.18.03Sorry D.程序編譯錯(cuò)誤

第六章java.lang包和字符串選擇題下列(A)集合不能含有重復(fù)元素。A.Set B.List C.Map D.Collection當(dāng)元素個(gè)數(shù)固定時(shí),使用(D)集合查找效率最高。A.Set B.List C.Map D.Arrays你希望存儲(chǔ)少量數(shù)據(jù)并能快速訪問.你并不需要排序這些數(shù)據(jù),那種數(shù)據(jù)結(jié)構(gòu)最適合這種需求?(D)TreeSet B.HashMap C.LinkedList D.數(shù)組欲構(gòu)造ArrayList類的一個(gè)實(shí)例,此類繼承了List接口,下列哪個(gè)方法是正確的?(B)ArrayListmyList=newObject();ListmyList=newArrayList();ArrayListmyList=newList();ListmyList=newList();關(guān)于HashMap和TreeMap類,判斷下列那種說法是正確的?(A)它們都能方便地定位映射中的值對(duì)象它們都實(shí)現(xiàn)了SortedMap接口它們都能高效地按照順序遍歷鍵以上說法都不對(duì)下列哪個(gè)不是Iterator接口所定義的方法?(D) A.hasNext() B.next() C.remove() D.nextElement()關(guān)于鏈表結(jié)構(gòu),陳述錯(cuò)誤的是哪個(gè)?(B)鏈表可動(dòng)態(tài)增長(zhǎng)在鏈表中查找對(duì)象是最有效的鏈表中的元素可以重復(fù)通常情況下,向鏈表中插入元素的效率高于向ArrayList中插入元素的效率Java語言的集合框架類定義在(B)語言包中。java.lang B.java.util C.java.array D.java.collectionsSet集合如何處理重復(fù)的元素?(B)A.如果試圖向Set集合中添加一個(gè)與集合中已有元素值相同的元素時(shí),將拋出異常B.如果試圖向Set集合中添加一個(gè)與集合中已有元素值相同的元素時(shí),add方法返回falseC.如果試圖向Set集合中添加一個(gè)與集合中已有元素值相同的元素時(shí),將發(fā)生編譯錯(cuò)誤D.可以在Set集合中添加一個(gè)與集合中已有元素值相同的元素下列哪項(xiàng)是正確的?(D)A.Collection是集合繼承體系中根類B.Collection接口中提供了enumerator方法C.interator方法返回Vector類的對(duì)象D.實(shí)現(xiàn)Set接口的類對(duì)象中,每個(gè)元素的值均不相等給定下列java代碼:importjava.util.*;

publicclassLetterASort{publicstaticvoidmain(String[]args){ArrayList<String>strings=newArrayList<String>();strings.add("aAaA");strings.add("AaA");strings.add("aAa");strings.add("AAaa");Collections.sort(strings);for(Strings:strings){System.out.print(s+"");}}}對(duì)該程序編譯運(yùn)行,結(jié)果是(C)。編譯失敗aAaAaAaAAaaAaAAAaaAaAaAaaAaAAaAAAaaaAaAaAaaAaAaAaAaAAAaa運(yùn)行時(shí)拋出異常給定下列java代碼://在這里插入privateNmin,max;publicNgetMin(){returnmin;}publicNgetMax(){returnmax;}publicvoidadd(Nadded){if(min==null||added.doubleValue()<min.doubleValue())min=added;if(max==null||added.doubleValue()>max.doubleValue())max=added;}}選擇以下哪兩行中任一行插入指定位置,程序可以通過編譯。(AC)publicclassMinMax<NextendsNumber>{publicclassMinMax<?extendsNumber>{publicclassMinMax<NextendsObject>{publicclassMinMax<?>{publicclassMinMax<?extendsObject>{publicclassMinMax<NextendsInteger>{給定下列java代碼:importjava.util.*;

publicclassOld{publicstaticObjectget(Listlist){returnlist.get(0);}}以下選項(xiàng)中,哪三個(gè)能編譯成功?(ADE)Objecto=Old.get(newLinkedList());Objecto=Old.get(newLinkedList<?>());Strings=Old.get(newLinkedList<String>());Objecto=Old.get(newLinkedList<Object>());Strings=(String)Old.get(newLinkedList<String>());給定下列java代碼:publicvoidtakeList(List<?extendsString>list){//在這里插入}將以下哪些語句插入指定位置,能夠編譯成功?(D)list.add("STRING");list=newArrayList<String>();list=newArrayList<Object>();Strings=list.get(0);Objecto=list;給定下列java代碼:publicclassScoreimplementsComparable<Score>{privateintwins,losses;publicScore(intw,int1){wins=w;losses=1;}publicintgetWins(){returnwins;}publicintgetLosses(){returnlosses;}publicStringtoString(){return"<"+wins+","+losses+">";}//在這里插入代碼}以下哪個(gè)方法能完成這個(gè)類?(B)publicintcompareTo(Objecto){/*這里是實(shí)現(xiàn)代碼*/}publicintcompareTo(Scoreother){/*這里是實(shí)現(xiàn)代碼*/}publicintcompare(Scores1,Scores2){/*這里是實(shí)現(xiàn)代碼*/}publicintcompare(Objecto1,Objecto2){/*這里是實(shí)現(xiàn)代碼*/}給定下列java代碼:publicstaticvoidappend(Listlist){list.add(”0042”);}publicstaticvoidmain(String[]args){List<Integer>intList=newArrayList<Integer>();append(intList);System.out.println(intList.get(0));}對(duì)該程序編譯運(yùn)行,結(jié)果是(D)。420042運(yùn)行時(shí)發(fā)生異常編譯錯(cuò)誤閱讀程序,并填空。有以下程序:publicclassGen<T>{privateTobject;publicGen_(Tobject){ this.object=object;}publicTgetObject(){returnobject;}publicstaticvoidmain(String[]args){Gen<String>str=newGen<String>(“[answer]”);Gen<Integer>intg=newGen<Integer>(42);System.out.println(str.getObject()+“=”+intg.getObject());}}該程序運(yùn)行結(jié)果為42,請(qǐng)將以下選項(xiàng)填入下劃線內(nèi)。注意每個(gè)選項(xiàng)均可重復(fù)選擇。Gen<T>Gen<?>Gen?T有以下程序:importjava.util.*;publicclassMyIntimplementsComparable{privateinti;publicMyInt(inti){this.i=i;}publicStringtoString(){returnInteger.toString(i);}publicintcompareTo(Objecto){MyInti2=(MyInt)o;returni-i2.i;}publicstaticvoidmain(String[]args){ArrayList<MyInt>list=newArrayList<MyInt>();list.add(newMyInt(2));list.add(newMyInt(1));Collections.sort(list);System.out.println(list);}}該程序運(yùn)行結(jié)果為[1,2],請(qǐng)將以下選項(xiàng)填入下劃線內(nèi)。implementsObjectComparableprotectedpublici-i2.iii2.i–icompare(MyInto,MyInti2)compare(Objecto,Objecti2)compareTo(MyInto)compareTo(Objecto)綜合編程題設(shè)有一數(shù)列:a1=3,a2=8,……,an=2an-1+2an-2,使用堆棧結(jié)構(gòu)輸出an的若干項(xiàng)。importjava.util.HashMap;publicclassNumNameMap{ publicstaticvoidmain(String[]args){ HashMap<String,String>stu=newHashMap<String,String>(); stu.put("1","list"); stu.put("2","Bill"); stu.put("3","Ann"); System.out.println(stu); }}有如下的類:publicclassNumberList{privateArrayListal;publicNumberList(int[]value){//將數(shù)組value中的元素添加到al中}Mapcount(){//統(tǒng)計(jì)al中每個(gè)元素出現(xiàn)的次數(shù),并將“元素值,這個(gè)元素出現(xiàn)的次數(shù)”作為鍵值對(duì)保存到Map對(duì)象中}}要求如下:(1)按注釋中的要求實(shí)現(xiàn)其中的方法。(2)定義一個(gè)測(cè)試類,用以驗(yàn)證NumberList類的正確性。importjava.util.ArrayList;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Iterator;importjava.util.Map;classNumberList{ privateArrayListal; publicNumberList(int[]value){ //將數(shù)組value中的元素添加到al中 al=newArrayList(); for(inti=0;i<value.length;++i) al.add(value[i]); } publicMap<Integer,Integer>count(){ //統(tǒng)計(jì)al中每個(gè)元素出現(xiàn)的次數(shù),并將“元素值,這個(gè)元素出現(xiàn)的次數(shù)”作為鍵值對(duì)保存到Map對(duì)象中 HashSetset1=newHashSet(); set1.addAll(al); HashMaphm=newHashMap(); Iteratorit=set1.iterator(); while(it.hasNext()){ intn=(int)it.next(); hm.put(n,0); } it=al.iterator(); while(it.hasNext()){ intn=(int)it.next(); hm.put(n,(int)hm.get(n)+1); } returnhm; } publicstaticvoidmain(String[]args){ int[]arr={1,3,2,4,7,1,1,3,4,8}; NumberListnl=newNumberList(arr); Map<Integer,Integer>hm=nl.count(); System.out.println(hm); }}

第七章輸入輸出和序列化一、選擇題下面關(guān)于System.out的說法哪個(gè)正確?(ABC)System.out是一個(gè)PrintStreamSystem.out是一個(gè)OutputStreamSystem.out是一個(gè)FilterOutputStreamSystem.out不是一個(gè)PrintStream下面哪個(gè)語句可以建立文件“file.txt”的字節(jié)輸入流?(D)InputStreamin=newInputStream("file.txt")InputStreamin=newFileReader("file.txt")FileInputStreamin=newFileOutputStream("file.txt")FileInputStreamin=newFileInputStream("file.txt")當(dāng)前文件系統(tǒng)中已經(jīng)存在了文件file.txt,該文件包涵有ASCII文本,代碼片段如下:try{Filef=newFile("file.txt");outputStreamout=newFileOutputStream(f,true);}catch(IOException){}結(jié)果是什么?(B)代碼不能編譯代碼可以編譯并運(yùn)行,對(duì)該文件不會(huì)有改變代碼可以編譯并運(yùn)行,并將該文件的長(zhǎng)度設(shè)置為0拋出異常,因?yàn)樵撐募]有關(guān)閉代碼可以編譯運(yùn)行,并從文件系統(tǒng)中刪除該文件。下面哪個(gè)選項(xiàng)可以將“hello”字符寫入文件file.txt的末尾?(B)OutputStreamout=newFileOutputStream("file.txt");Out.writeBytes("hello");OutputStreamos=newFileOutputStream("file.txt",true);DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");OutputStreamos=newFileOutputStream("file.txt");DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");OutputStreamos=newOutputStream("file.txt",true);DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");哪個(gè)類是FilterOutputStream類構(gòu)造器的合法參數(shù)?(B)InputStreamOutputStreamFileRandomAccessFileStreamTokenizer下面關(guān)于java.io.Serializable的說法哪個(gè)不正確?(C)一個(gè)對(duì)象在一個(gè)JVM被序列化后,可以在另外一個(gè)JVM被反序列化聲明成transient的數(shù)據(jù)成員不能被序列化和反序列化聲明成static的數(shù)據(jù)成員,因?yàn)樵摂?shù)據(jù)成員是對(duì)象內(nèi)部的成員,所以仍然可以被序列化如果一個(gè)父類可以被序列化,則所有繼承該類的子類也可以被序列化分析下面給出的代碼結(jié)果是什么?importjava.io.*;publicclassForestimplementsSerializable{ privateTreetree=newTree(); publicstaticvoidmain(String[]args){ Forestf=newForest(); try{ FileOutputStreamfs=newFileOutputStream("Forest.ser"); ObjectOutputStreamos=newObjectOutputStream(fs); os.writeObject(f); os.close(); }catch(Exceptionex){ ex.printStackTrace(); } }}classTree{}結(jié)果是什么?(B)代碼不能編譯代碼可以編譯,運(yùn)行時(shí)拋出異常一個(gè)Forest實(shí)例被序列化一個(gè)Forest實(shí)例和Tree實(shí)例都被序列化分析下面的代碼:importjava.io.*;publicclassFooimplementsSerializable{publicintx,y;publicFoo(intx,inty){this.x=x;this.y=y;}privatevoidwriteObject(ObjctOutputStreams)throwsIOException{s.writeInt(x);s.writeInt(y);}privatevoidreadObject(ObjectInputStreams)throwsIOException,ClassNotFoundException{//insertcodehere}}下面給出的選擇中,在10行處插入哪些代碼,可以使該類實(shí)現(xiàn)正確的序列化和反序列化(D)s.defaultReadObject();this=s.defaultReadObject(),y=s.readInt();x=s.readInt();x=s.readInt();y=s.readInt();假定下面代碼中的serializeBanana()和deserializeBanana()方法可以正確的執(zhí)行,分析下面的代碼,結(jié)果是什么?(C)importjava.io.*;classFoodimplementsSerializable{ intgood=3;}classFruitextendsFood{ intjuice=5;}publicclassBananaextendsFruit{ intyellow=4; publicstaticvoidmain(String[]args){ Bananab=newBanana(); Bananab2=newBanana(); b.serializeBanana(b);//assumecorrectserialization b2=b.deserializeBanana();//assumecorrect System.out.println("restore"+b2.yellow+b2.juice+b2.good); } //moreBananamethodsgohere}restore400restore403restore453Compilationfails

第八章GUI圖形用戶界面編程一、選擇題以下哪個(gè)不是Swing容器組件?(C)JFrameJPanelJTextAreaJScrollPane如果想在界面上創(chuàng)建一個(gè)如圖8-所示的效果,需要拖放哪些組件?(CD)(選兩項(xiàng))圖8-33 鼠標(biāo)事件程序JComboBoxJTextFieldJTextAreaJScrollPane以下哪個(gè)不是Java事件處理機(jī)制的元素?(D)事件 B.事件監(jiān)聽器事件源 D.事件處理程序以下關(guān)于布局管理器哪句是錯(cuò)誤的?(D)FlowLayout將組件按順序從左到右、從上到下進(jìn)行排列BorderLayout布局將組件按照上、下、左、右、中進(jìn)行排列GridLayout布局將組件按照行和列的矩陣進(jìn)行排列BorderLayout布局中允許放置多于5個(gè)的組件以下那句描述不正確?(D)Swing組件是在AWT基礎(chǔ)上發(fā)展起來的Swing組件是純Java的輕量型組件所有的Swing組件均已“J”開頭Swing組件所在的包在java.swing中哪個(gè)組件可以從一組選項(xiàng)中選擇多個(gè)選項(xiàng)?(C)JRadioButtonJComboBoxJCheckBoxJTextField以下哪一個(gè)是JTable的父類?(A)JComponentJContainerComponentContainer以下菜單類中哪個(gè)是父類?(D)JCheckBoxMenuItemJRadioButtonMenuItemJMenuJMenuItem

第九章JDBC數(shù)據(jù)庫編程一、選擇題用于創(chuàng)建數(shù)據(jù)庫連接的接口是哪個(gè)?(B)ConnectionDriverManagerStatementResultSet用于執(zhí)行SQL語句并返回執(zhí)行結(jié)果的接口是哪個(gè)?(C)ConnectionDriverManagerStatementResultSet用于保存查詢結(jié)果的接口是哪個(gè)?(D)ConnectionDriverManagerStatementResultSet訪問數(shù)據(jù)庫必須要捕獲的異常是哪個(gè)?(B)IOExceptionSQLExceptionClassNotFoundExceptionEOFException以下哪個(gè)不是使用預(yù)編譯接口的優(yōu)點(diǎn)?(D)速度快一次編譯,多次執(zhí)行效率高代碼量少二、簡(jiǎn)答題簡(jiǎn)述JDBC技術(shù)連接數(shù)據(jù)庫的優(yōu)點(diǎn)。答:JDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫連接)技術(shù)是Sun公司推出的一種專門訪問數(shù)據(jù)庫的API。它是由一組用Java編程語言編寫的類和接口組成,支持基本SQL語句,提供多樣化的數(shù)據(jù)庫連接方式,可連接不同的數(shù)據(jù)庫。JDBC技術(shù)是用來Java語言編寫的訪問數(shù)據(jù)庫標(biāo)準(zhǔn)接口,使用這樣的API編寫的應(yīng)用程序無論從安全性、健壯性、可移植性都是具有優(yōu)勢(shì)的簡(jiǎn)述JDBC技術(shù)連接數(shù)據(jù)庫的步驟。在SQLServer里創(chuàng)建一個(gè)名為MyDB的數(shù)據(jù)庫,數(shù)據(jù)庫里有一張Users表,表中有UserID,UserName兩個(gè)字段,請(qǐng)寫出連接MyDB數(shù)據(jù)庫和訪問Users表中數(shù)據(jù)的代碼。publicstaticvoidmain(String[]args){//調(diào)用純Java方式連接數(shù)據(jù)庫Connectionconn=JavaCon();try{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論