第一行代碼-Java-章后習(xí)題及綜合測試題答案_第1頁
第一行代碼-Java-章后習(xí)題及綜合測試題答案_第2頁
第一行代碼-Java-章后習(xí)題及綜合測試題答案_第3頁
第一行代碼-Java-章后習(xí)題及綜合測試題答案_第4頁
第一行代碼-Java-章后習(xí)題及綜合測試題答案_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

附錄2:習(xí)題答案第1章:Java簡介一一自我檢測(答案)1、填空題Java源程序文件的后綴是 *.java,Java字節(jié)碼文件的后綴名稱是 *.class。Java程序?qū)崿F(xiàn)可移值性,依靠的是 JVM。Java語言的三個(gè)分支是: JAVASE、JAVAME、JAVAEE。Java程序由類組成,如果Java使用 publicclass聲明類、則文件名稱必須與類名稱一致。Java執(zhí)行是從 main()方法開始執(zhí)行的,此方法的完整定義是 publicstaticvoidmain(Stringargs口)從命名標(biāo)準(zhǔn)上來講,Java類名的每個(gè)單詞的首字母通常要求 大寫。當(dāng)使用java命令解釋一個(gè)程序時(shí),一定需要 classpath 環(huán)境屬性來定位類資源路徑;2、選擇題1、 下面那個(gè)是屬于解釋Java程序所使用到命令?(A)A、java.exeB、javac.exeC、 keytool.exeD、cmd.exe2、 下面的那個(gè)環(huán)境變量java解釋時(shí)所需要的_B oA、pathB、classpathC、JAVA_HOMED、TEMP3、 下面那一種開發(fā)方向不屬于 Java定義的?_CA、JavaSEB、JavaEEC、JavaCED、JavaME3、判斷題Java語言屬于編譯型的開發(fā)語言。 (x)JavaApplication程序不是由main()方法開始執(zhí)行的。 (x)4、簡答題簡述Java實(shí)現(xiàn)可移值性的基本原理。答:Java屬于編譯型和解釋型的編程語言, 所有的*.java程序必須編譯為*.class文件之后才可以在電腦上執(zhí)行, 而執(zhí)行*.class文件的電腦并不是一臺(tái)真實(shí)的電腦, 而是利用軟件和硬件模擬出來的一臺(tái)虛擬電腦,稱為Java虛擬機(jī),而針對于不同的操作系統(tǒng)平臺(tái),有不同版本的Java虛擬機(jī),即:由Java虛擬機(jī)去適應(yīng)不同的操作系統(tǒng),即:只要Java虛擬機(jī)的支持沒有改變,同一個(gè)*.class可以在不同的平臺(tái)上運(yùn)行。簡述Java語言的三個(gè)程序分支。答:JAVASE(Java標(biāo)準(zhǔn)版):提供基礎(chǔ)的Java類庫及平臺(tái)支持:JAVAME(Java微型版):提供嵌入式開發(fā)支持:JAVAEE(Java企業(yè)版):提供企業(yè)平臺(tái)支持。

簡述Java中path及classpath的作用。答:PATH:是操作系統(tǒng)的環(huán)境屬性,指的是可以執(zhí)行命令的程序路徑;CLASSPATH:是所有*.class文件的執(zhí)行路徑,java命令執(zhí)行的時(shí)候?qū)⒗么寺窂郊虞d所需要的 *.class文件。簡述Java語言的主要特點(diǎn)。答:Java語言的主要的特點(diǎn)如下:Java語言是一門面向?qū)ο笳Z言,且語法足夠簡單;Java避免了C/C++之中復(fù)雜的指針關(guān)系,而使用了更為簡單的引用方式來進(jìn)行內(nèi)存?zhèn)鬟f;Java是為數(shù)不多的支持多線程開發(fā)的編程語言;Java提供了自動(dòng)的垃圾收集機(jī)制,可以定期釋放出無用的垃圾空間;Java語言的安全性較高;Java最大的特點(diǎn)是具備可移植性,即:同一個(gè)程序在不同的操作系統(tǒng)上都可以運(yùn)行。詳細(xì)I^述Java中使用publicclass或class聲明一個(gè)類的區(qū)別及注意事項(xiàng)。答:使用publicclass定義的類,要求文件名稱和類名稱保持一致,在一個(gè)*.java文件之中只能存在一個(gè)publicclass;使用class定義的類,文件名稱可以和類名稱不一致,在一個(gè)*.java文件之中可以同時(shí)存在多個(gè) class定義,編譯之后會(huì)產(chǎn)生多個(gè)*.class文件。5、編程題在屏幕上輸出:“我喜歡學(xué)習(xí)Java”的信息。答案:publicclassTestDemo{publicstaticvoidmain(String口args){System.out.println("我喜歡學(xué)習(xí)Java");}}在屏幕上打印出以下的圖形:**********************************************Java程序設(shè)計(jì)*********Java程序設(shè)計(jì)**********************************************答案:publicclassTestDemo{publicstaticvoidmain(String口args){System.out.println(“*************************************”);System.out.println("*********Java程序設(shè)計(jì)***********);System.out.println(“*************************************”);第2System.out.println(“*************************************”);System.out.println("*********Java程序設(shè)計(jì)***********);System.out.println(“*************************************”);第2章簡單Java程序1、填空題自我檢測(答案)1、 Java中的標(biāo)識(shí)符組成原則:1、 Java中的標(biāo)識(shí)符組成原則:assert關(guān)鍵字是在JDK1.4時(shí)加入的,enum 關(guān)鍵字是在JDK1.5時(shí)加入的。列舉出已經(jīng)知道的5個(gè)關(guān)鍵字:public、static、void、int、double。Java注釋分為以下三種: 單行注釋(//) 、多行注釋(/*???*/)、 文檔注釋 。Java中使用int 關(guān)鍵字,可以定義一個(gè)整型數(shù)據(jù)。在一個(gè)Java源文件中定義了 3個(gè)類和15個(gè)方法,編譯該Java源文件時(shí)會(huì)產(chǎn)生 3 個(gè)字節(jié)碼文件,其擴(kuò)展名是*.class。布爾型數(shù)據(jù)類型的關(guān)鍵字是 boolean,有true和false 兩種取值。整型數(shù)可以采用byte、short、int和long 四種類型表示。根據(jù)占用內(nèi)存長度的不同將浮點(diǎn)型分為 float和double兩種。10、Java程序結(jié)構(gòu)分為: 順序結(jié)構(gòu) 、 分支結(jié)構(gòu) 、 循環(huán)結(jié)構(gòu) 三種。11、邏輯表達(dá)式:true&&false&&true的結(jié)果是false。12、邏輯表達(dá)式:!true||false的結(jié)果是 false。13、在方法中可以使用return 語句來結(jié)束方法的執(zhí)行。14、方法中的void 關(guān)鍵字用來表示方法不返回任何值。2、選擇題TOC\o"1-5"\h\z下面那些標(biāo)識(shí)符是正確的 DoA、class B、helloworldC、123$temp D、 Demo下面那些關(guān)鍵字是Java中未使用到的關(guān)鍵字 A、B (多選)。A、constB、goto C、int D、 assertpublicstaticvoidmain方法的參數(shù)描述是: A。A、Stringargs[] B、 int[]args C、Stringsargs[] D、Stringargs下面說法正確的是 CoJava程序的源文件名稱與主類(puublicclass)的名稱相同,后綴可以是.java或.txt等。JDK的編譯命令是java。一個(gè)java源文件編譯后可能產(chǎn)生多個(gè) class文件。D、在命令行編譯好的字節(jié)碼文件,只需在命令行直接鍵入程序名即可運(yùn)行該程序。下面說法不正確的是 AoJava語言是面向?qū)ο蟮摹⒔忉寛?zhí)行的網(wǎng)絡(luò)編程語言Java語言具有可移植性,是與平臺(tái)無關(guān)的編程語言。Java語言可對內(nèi)存垃圾自動(dòng)收集。Java語言執(zhí)行時(shí)需要Java的運(yùn)行環(huán)境。下面A 不是Java的關(guān)鍵字。A、integer B、double C、float D、charTOC\o"1-5"\h\z在Java中,字節(jié)數(shù)據(jù)類型的關(guān)鍵字和默認(rèn)值是 A。A、 byte和0 B、 byte和 1 C、 boolean和true D、 boolean和 false3.15E2表示的數(shù)據(jù)是CoA、 3.15X2 B、 3.15X 10-2 C、 3.15X102 D、 0.315 X10-2程序System.out.println("1+1="+1+1);的輸出結(jié)果是 C。A、 1 B、 1+1=2 C、 1+1=11 D、 210、程序System.out.println(10/3);的輸出結(jié)果是 B。A、 1 B、 3 C、3.3 D、 3.3333311、執(zhí)行下面的語句后,a、b、c的值分別是C。inta=2;publicstaticintadd(intx,inty){publicstaticintadd(intx,inty){publicstaticintadd(intx,inty){publicstaticintadd(intx,inty){intb=(a++)*3;intc=(++a)*3;A、 2、6、6B、 4、9、9 C、4、6、12D、3、9、912、以下的B能正確表示Java語言中的一個(gè)整型常量。A、35.dB、-20C、 1,234D、"123"13、下面的數(shù)據(jù)類型 D是float型A、 33.8B、 129C、 89L D、 8.6F14、下列關(guān)于自動(dòng)類型轉(zhuǎn)換的說法中,正確的一個(gè)是 Boint類型數(shù)據(jù)可以自動(dòng)轉(zhuǎn)換為 char類型數(shù)據(jù)char類型數(shù)據(jù)可以被自動(dòng)轉(zhuǎn)換為 int類型數(shù)據(jù)boolean類型數(shù)據(jù)不可以做自動(dòng)類型轉(zhuǎn)換,但是可以做強(qiáng)制轉(zhuǎn)換long類型數(shù)據(jù)可以被自動(dòng)轉(zhuǎn)換為 short類型數(shù)據(jù)TOC\o"1-5"\h\z15、一個(gè)方法在定義過程中又調(diào)用自身,這種方法稱為 B。A、 構(gòu)造方法 B、 遞歸方法 C、成員方法D、抽象方法3、判斷題變量的內(nèi)容可以修改,常量的內(nèi)容不可修改。 (v )goto是Java中未使用到的關(guān)鍵字。 ( V )enum關(guān)鍵字是在JDK1.4版本中增加的。 ( X )使用publicclass定義的類,文件名稱可以與類名稱不一致。 (x )主方法編寫:publicvoidmain(Stringarg)。 ( x )字符$不能作Java標(biāo)識(shí)符的第一個(gè)字符。 (x )System.out.println()輸出后是不加換行的,而 System.out.print()輸出后是加換行的。 ( x )使用break語句可以跳出一次循環(huán)。 (x )byte的取值范圍是:0~255。 (X)10、int和double進(jìn)行加法操作,int會(huì)自動(dòng)轉(zhuǎn)換為double類型。 ( x )11、使用“&”操作時(shí),如果第一個(gè)條件是false,則后續(xù)的條件都不再判斷。 ( x )12、使用“&&”操作時(shí),如果第一個(gè)條件是false,則后續(xù)的條件都不再判斷。 ( " )13、使用“「操作時(shí),如果第一個(gè)條件是 true,則后續(xù)的條件都不再判斷。 ( x )14、使用“『操作時(shí),如果第一個(gè)條件是 true,則后續(xù)的條件都不再判斷。 ( V )15、定義多個(gè)同名方法時(shí),可以依靠返回值區(qū)別同名方法。 (x)4、簡答題請解釋常量與變量的區(qū)別?答:常量就是一個(gè)固定的數(shù)值。是不可改變的,例如:數(shù)字1、2就是一個(gè)整型的常量。變量是利用聲明的方式,將內(nèi)存中的某個(gè)內(nèi)存塊保留下來以供程序使用??梢月暶鞯臄?shù)據(jù)類型為整型、字符型、浮點(diǎn)型或是其他數(shù)據(jù)類型,作為變量的保存之用。變量在程序語言中扮演了最基本的角色。變量可以用來存放數(shù)據(jù),而使用變量之前必須先聲明它的數(shù)據(jù)類型。解釋方法重載的概念,并舉例說明。答:方法重載指的是多個(gè)方法的方法名稱相同,但是方法中的參數(shù)類型及個(gè)數(shù)不同。代碼說明:returnx+y;}publicstaticintadd(intx,inty,intz){returnx+y+z;}publicstaticdoubleadd(doublex,doubley){returnx+y;}5、編程題打印出io。?io。。范圍內(nèi)的所有 “水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身例如:153是一個(gè)“水仙花數(shù)”,因?yàn)?53=1的三次方十5的三次方十3的三次方。publicclassTestDemo{publicstaticvoidmain(String口args){inti,j,k;for(intx=100;x<1000;x++){i=x/100; //計(jì)算百位數(shù)字j=(x/10)%10; //計(jì)算十位數(shù)字k=x%10; //計(jì)算個(gè)位數(shù)字if(x==i*i*i+j*j*j+k*k*k){System.out.print(x+ "、");}}}}程序運(yùn)行結(jié)果: 153、370、371、407、通過代碼完成兩個(gè)整數(shù)內(nèi)容的交換。實(shí)現(xiàn)一:引用第三方變量實(shí)現(xiàn)二:利用數(shù)學(xué)計(jì)算完成publicclassTestDemo{publicstaticvoidmain(String[]args){intx=10;inty=20;inttemp=x;x=y;y=temp;System.out.println( "x=" +x);System.out.println( "y=" +y);}}publicclassTestDemo{publicstaticvoidmain(String[]args){intx=10;inty=20;x+=y;y=x-y;x=x-y;System.out.println( "x="+x);System.out.println( "y="+y);}}程序運(yùn)行結(jié)果:x=20y=10判斷某數(shù)能否被3,5,7同時(shí)整除publicclassTestDemo{publicstaticvoidmain(String[]args){

intdata=105;if(data%3==0&&data%5==0&&data%7==0){System.out.println(data+ ”可以同時(shí)被3、5、7整除。");}else{System.out.println(data+ "不可以同時(shí)被3、5、7整除。");}}}程序運(yùn)行結(jié)果: 105可以同時(shí)被3、5、7整除編寫程序,分別利用while循環(huán)、do--while循環(huán)和for循環(huán)求出100~200的累加和實(shí)現(xiàn)一:使用while循環(huán)publicclassTestDemo{publicstaticvoidmain(String口args){intsum=0;intx=100;while(x<=200){sum+=x;x++;}System.out.println("累加結(jié)果:"}}+sum);實(shí)現(xiàn)二:使用do-while循環(huán)publicclassTestDemo{publicstaticvoidmain(String口args){intsum=0;intx=100;do{sum+=x;x++;}while(x<=200);System.out.println( "累加結(jié)果:"}}+sum);實(shí)現(xiàn)三:使用for循環(huán)publicclassTestDemo{publicstaticvoidmain(String[]args){intsum=0;for(intx=100;x<=200;x++){sum+=x;}System.out.println("累加結(jié)果:"}}+sum);第3第3章、面向?qū)ο?基礎(chǔ))自我檢測(答案)1、填空題面向?qū)ο笥心侨筇卣鳎?封裝、繼承、多態(tài)。類由 屬性 和 方法組成。new 運(yùn)算符的作用是根據(jù)對象的類型分配內(nèi)存空間。當(dāng)對象擁有內(nèi)存空間時(shí),會(huì)自動(dòng)調(diào)用類中的 構(gòu)造方法為對象 實(shí)例化 。使用private彳^飾的類成員稱為私有成員。私有成員只能在 類 中使用。構(gòu)造方法的名稱與 類名稱相同。private 關(guān)鍵字可以讓類中的屬性和方法對外部不可見。this關(guān)鍵字可以調(diào)用本類中的 屬性、方法、 構(gòu)造方法 ,調(diào)用 構(gòu)造方法時(shí)必須放在 構(gòu)造方色_的首行。在Java中數(shù)組排序的方法是 java.util.Arrays.sort()。2、選擇題TOC\o"1-5"\h\z如果希望方法直接通過類名稱訪問,在定義時(shí)要使用的修飾符是 A。A、static B、final C、 abstract D、this如果類中沒有定義構(gòu)造方法,系統(tǒng)會(huì)提供一個(gè)默認(rèn)的構(gòu)造方法。默認(rèn)構(gòu)造方法的特點(diǎn)是CA、 無參數(shù)有操作 B、 有參數(shù)無操作 C、 即無參數(shù)也無任何操作 D、 有參數(shù)有操作有一個(gè)類Demo,對與其構(gòu)造方法的正確聲明是 B。A、voidDemo(intx){…} B、 Demo(intx){…}C、 DemoDemo(intx){…} D、 intDemo(){}以下關(guān)于面向?qū)ο蟾拍畹拿枋鲋?,不正確的一項(xiàng)是 CoA、在現(xiàn)實(shí)生活中,對象是指客觀世界的實(shí)體程序中的對象就是現(xiàn)實(shí)生活中的對象在程序中,對象是通過一種抽象的數(shù)據(jù)類型來描述的,這種抽象數(shù)據(jù)類型稱為類( class)D、在程序中,對象是一組變量和相關(guān)方法的集合下列那一項(xiàng)不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)的基本要素? DA、類B、對象C、方法 D、 安全下列程序的執(zhí)行結(jié)果是 ApublicclassTestDemo{publicvoidfun(){staticinti=0;i++;System.out.println(i);}publicstaticvoidmain(Stringargs口){Demod=newDemo();d.fun();}}A、編譯錯(cuò)誤B、 0 C、 1 D、順序執(zhí)行下列程序語句后,則 b的值是C。Stringstr="Hello";Stringb=str.substring(0,2);A、HelloB、hello C、HeD、null3、判斷題TOC\o"1-5"\h\z沒有實(shí)例化的對象不能使用。 (v )不可以為類定義多個(gè)構(gòu)造方法。 (X )使用static聲明的方法可以調(diào)用非static聲明的方法。 (x )非static聲明的方法可以調(diào)用static聲明的屬性或方法。 (V )String對象可以使用==進(jìn)行內(nèi)容的比較。 ( x )垃圾是指無用的內(nèi)存空間,會(huì)被垃圾收集機(jī)制回收。 ( V )構(gòu)造方法可以有返回值類型的聲明。 ( x )匿名對象是指使用一次的對象,使用之后將等待被垃圾回收。 (V )使用static定義的內(nèi)部類就成為外部類。 (V )多個(gè)實(shí)例化對象之間不會(huì)互相影響,因?yàn)楸4嬖诓煌膬?nèi)存區(qū)域之中。 (V)4、簡答題String類的操作特點(diǎn)。答:String類的對象有兩種實(shí)例化方式:卜方式一:直接賦值,只開辟一塊堆內(nèi)存空間,并且對象可以入池;卜方式二:構(gòu)造方法,開辟兩塊堆內(nèi)存空間,有一塊將稱為垃圾,不會(huì)自動(dòng)入池,使用 intern()方法手工入池;String對象的比較方法:卜==:比較的是兩個(gè)字符串對象的內(nèi)存地址數(shù)值;卜equals。:字符串內(nèi)容比較;字符串對象一旦聲明,則內(nèi)容不可改變,改變的只能是字符串對象的地址指向。簡述垃圾對象的產(chǎn)生。答:垃圾指的是一塊無用的引用內(nèi)存,當(dāng)將變量設(shè)置為 null或者長時(shí)間不使用時(shí),就將成為垃圾。static方法如何調(diào)用?非static方法如何調(diào)用?答:static方法可以使用類名稱或?qū)嵗瘜ο笳{(diào)用,而非 static方法只能依靠實(shí)例化對象才可以調(diào)用。類與對象的關(guān)系是什么?如何創(chuàng)建及使用對象?答:類規(guī)定了對象所具有的屬性及行為(方法) ,類只有通過產(chǎn)生對象才可以分配屬性或者是調(diào)用方法,對象的創(chuàng)建依靠關(guān)鍵字new創(chuàng)建。舉例說明子類對象的實(shí)例化過程。答:當(dāng)通過關(guān)鍵字new實(shí)例化子類對象時(shí),會(huì)默認(rèn)調(diào)用父類的無參構(gòu)造方法,為父類對象實(shí)例化,而后才會(huì)調(diào)用子類的構(gòu)造方法,為子類對象實(shí)例化。簡述this與super關(guān)鍵字的區(qū)別。答:this和super都可以調(diào)用類中的屬性、方法、構(gòu)造方法,但是this調(diào)用的是本類操作,而super是由子類調(diào)用父類操作。5、編程題編寫并測試一個(gè)代表地址的Address類,地址信息由:國家,省份,城市,街道,郵編組成,并可以返回完整的地址信息classAddress{privateStringnationalprivateStringprovincialprivateStringcity;privateStringstreet;privateStringzipcodepublicAddress(){}publicAddress(Stringnational,Stringprovincial,Stringcity,Stringstreet,Stringzipcode){super();this.national=national;vincial=provincial;this.city=city;this.street=street;this.zipcode=zipcode;}publicStringtoString(){return"國家:"+this.national+”,省份:"+vincial+”,城市:”+this.city+”,街道:"+this.street+”,郵政編碼:"+this.zipcode;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Addressad=newAddress("中國","北京","北京市","MLDN","100088");System.out.println(ad);}}程序運(yùn)行結(jié)果: 國家:中國,省份:北京,城市:北京市,街道: MLDN郵政編碼:100088定義并測試一個(gè)代表員工的 Employee類。員工屬性包括“編號(hào)”、“姓名”、“基本薪水”、“薪水增長額”;還包括“計(jì)算增長后的工資總額”。的操作方法。classEmployee{privateintempno;//雇員編號(hào)privateStringename;//雇員姓名privatedoublesal;// 基本工資privatedoublerate;//工資增長額publicEmployee(){}publicEmployee(intempno,Stringename, doublesal,doublerate){super();this.empno=empno;this.ename=ename;this.sal=sal;this.rate=rate;}publicStringtoString(){return ”雇員編號(hào):"+this.empno+”,雇員姓名:"+this.ename+”,基本工資:"+this.sal}publicvoidgrowthin(){ //增長薪水this.sal=this.sal*this.rate;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs口){Employeeemp=newEmployee(7369,"SMITH",1000,1.5);emp.growthin(); //工資增長System.out.println(emp);}}程序運(yùn)行結(jié)果: |雇員編號(hào):7369,雇員姓名:SMITH,基本工資:~1500.03、 編寫程序在將字符串“wantyoutoknowonething",統(tǒng)計(jì)出字母“n”和字母“o”的出現(xiàn)次數(shù)。publicclassTestDemo{publicstaticvoidmain(Stringargs口){Stringstr= "wantyoutoknowonething"; //定義字符串intsum=0;while(str.indexOf( "n")!=-1){//是否還有字母nsum++;//數(shù)據(jù)統(tǒng)計(jì)量增加str=str.substring(str.indexOf("n")+1); //改變字符串內(nèi)容}System.out.println("字母n的出現(xiàn)次數(shù):"+sum);}}程序運(yùn)行結(jié)果: |字母n的出現(xiàn)次數(shù):4設(shè)計(jì)一個(gè)Dog類,有名字、顏色、年齡等屬性,定義構(gòu)造方法來初始化類的這些屬性,定義方法輸出 Dog信息。編寫應(yīng)用程序使用Dog類。classDog{private String name;private String color;privateintage;publicDog(){}publicDog(Stringname,Stringcolor, intage){super();=name;this.color=color;this.age=age;}publicStringtoString(){return"狗的名字:"++”,狗的顏色:"+this.color+”,狗的年齡:"+this.age;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs口){Dogdog=newDog("金毛","金黃色",3);System.out.println(dog);}}程序運(yùn)行結(jié)果: |狗的名字:金毛,狗的顏色:金黃色,狗的年齡: 二字符串操作:從字符串“MLDN中心Java技術(shù)學(xué)習(xí)班20130214”中提取開班日期。publicclassTestDemo{publicstaticvoidmain(Stringargs口){Stringstr= "MLDN中心Java技術(shù)學(xué)習(xí)班20130214";System.out.println(str.substring(str.indexOf( "20130214")));}}程序運(yùn)行結(jié)果: 20130214將“MLDNJAVA高端技術(shù)培訓(xùn)”字符串中的“ Java”替換為“JAVAEE”。publicclassTestDemo{publicstaticvoidmain(Stringargs口){Stringstr="MLDNJAVA高端技術(shù)培訓(xùn)”;System.out.println(str.replaceAll( "Java".toUpperCase(),"JAVAEE"));}}程序運(yùn)行結(jié)果: MLDNJAVAEE高端技術(shù)培訓(xùn)取出“Java技術(shù)學(xué)習(xí)班20130214”中的第八個(gè)字符。publicclassTestDemo{publicstaticvoidmain(Stringargs口){Stringstr="Java技術(shù)學(xué)習(xí)班20130214";System.out.println(str.charAt(8));}}程序運(yùn)行結(jié)果: |班清除“Java技術(shù)學(xué)習(xí)班20130214”中的所有‘0'。publicclassTestDemo{publicstaticvoidmain(Stringargs口){Stringstr="Java技術(shù)學(xué)習(xí)班20130214";System.out.println(str.replaceAll( "0",""));}}程序運(yùn)行結(jié)果: |Java技術(shù)學(xué)習(xí)班213214從任意給定的身份證號(hào)碼中提取此人的出生日期。publicclassTestDemo{

publicstaticvoidmain(Stringargs口){Stringstr= "1101051976091900520"System.out.println(str.substring(6,14));}}程序運(yùn)行結(jié)果:19760919編寫一個(gè)銀行帳戶類,類的構(gòu)成包括:數(shù)據(jù)成員:卜用戶的帳戶名稱、用戶的帳戶余額;方法包括:卜開戶(設(shè)置帳戶名稱,及余額),利用構(gòu)造方法完成查詢余額classAccount{private String name;private double balance;publicAccount。{}publicAccount(Stringname, doublebalance){super();=name;this.balance=balance;}publicStringtoString(){return”賬戶名稱:"++",余額:"+this.balance;}publicdoublegetBalance(){returnbalance;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs口){Accountacc=newAccount("張三”,5000.0);System.out.println(acc);System.out.println("賬戶余額:”+acc.getBalance());}}程序運(yùn)行結(jié)果:賬戶名稱:張三,余額:5000.0賬戶余額:5000.0第4章、面向?qū)ο?高級) 一一自我檢測(答案)1、填空題Java中通過extends 關(guān)鍵字實(shí)現(xiàn)繼承。一個(gè)類只能繼承 一 個(gè)父類,但能實(shí)現(xiàn) 多個(gè)接口。Object 類是所有類的父類,該類中判斷兩個(gè)對象是否相等的方法是 publicbooleanequals(Objectoth),取得對象完整信息的方法是 publicStringtoString()。Integer類是對int 基本數(shù)據(jù)類型的封裝。Float類是對float 基本數(shù)據(jù)類型的封裝。Double類是對double基本數(shù)據(jù)類型的封裝。字符類 Character是對char 基本數(shù)據(jù)類型的封裝。當(dāng)子類中定義的方法與父類方法同名且參數(shù)類型及個(gè)數(shù)、返回值類型相同時(shí),稱子類方法 覆寫 父類方法、子類默認(rèn)使用 本類已經(jīng)覆寫 方法,使用父類的同名方法,必須使用super 關(guān)鍵字說明。當(dāng)子類定義的成員變量與父類的成員變量同名時(shí), 稱子類覆蓋 父類的成員變量,子類默認(rèn)使用 本類屬性。使用父類的同名成員變量,必須用super關(guān)鍵字說明。如果子類定義了構(gòu)造方法,在創(chuàng)建子類對象時(shí)首先默認(rèn)調(diào)用 父類無參構(gòu)造方法 ,然后再本類的構(gòu)造方法。2、選擇題TOC\o"1-5"\h\z不能直接使用new創(chuàng)建對象的類是 B。A、靜態(tài)類 B、抽象類 C、最終類 D、公有類為類定義多個(gè)名稱相同、但參數(shù)的類型或個(gè)數(shù)不同的方法的做法稱為 B。A、方法重載 B、方法覆寫 C、 方法繼承 D、方法重用定義接口的關(guān)鍵字是 CoA、extends B、class C、interface D、public現(xiàn)在有兩個(gè)類A、B,以下描述中表示B繼承自A的是D。A、classAextendsB B、classBimplementsAC、classAimplements D、classBextendsA下面關(guān)于子類調(diào)用父類構(gòu)造方法的描述正確的是 C。A、子類定義了自己的構(gòu)造方法,就不會(huì)調(diào)用父類的構(gòu)造方法。子類必須通過super關(guān)鍵字調(diào)用父類有參的構(gòu)造方法。如果子類的構(gòu)造方法沒有通過 super調(diào)用父類的構(gòu)造方法,那么子類會(huì)先調(diào)用父類中無參構(gòu)造方法,之后再調(diào)用子類自己的構(gòu)造方法。D、創(chuàng)建子類對象時(shí),先調(diào)用子類自己的構(gòu)造方法,讓后再調(diào)用父類的構(gòu)造方法。假設(shè)類X是類丫的父類,下列聲明對象x的語句中不正確的是 DoA、Xx=newX(); B、Xx=newY();C、Yx=newY(); D、Yx=newX();編譯并運(yùn)行下面的程序,結(jié)果BpublicclassA{publicstaticvoidmain(Stringargs口){Bb=newB();b.test();}voidtest(){System.out.print("A");}}classBextendsA{voidtest(){super.test();System.out.println("B");}}A、 產(chǎn)生編譯錯(cuò)誤 B、 代碼可以編譯運(yùn)行,并輸出結(jié)果:ABC、 代碼可以編譯運(yùn)行,但沒有輸出 D、 編譯沒有錯(cuò)誤,但會(huì)運(yùn)行時(shí)會(huì)產(chǎn)生異常編譯運(yùn)行下面的程序,結(jié)果是AopublicclassA{publicstaticvoidmain(Stringargs口){Bb=newB();b.test();}publicvoidtest(){System.out.print("A");}}classBextendsA{voidtest(){super.test();System.out.println("B");}}產(chǎn)生編譯錯(cuò)誤,因?yàn)轭怋覆蓋類A的方法test()時(shí),降低了其訪問控制的級別。代碼可以編譯運(yùn)行,并輸出結(jié)果: AB代碼可以編譯運(yùn)行,但沒有輸出代碼可以編譯運(yùn)行,并輸出結(jié)果: A下面B 修飾符所定義的方法必須被子類所覆寫。final B、 abstract C、 static D、 interface10、下面一A一修飾符所定義的方法不能被子類所覆寫。final B、 abstract D、 static D、 interface11、下面的程序編譯運(yùn)行的結(jié)果是 ApublicclassAimplementsB{publicstaticvoidmain(Stringargs口){intm,n;Aa=newA();m=a.K;n=B.K;System.out.println(m+ ,,,,,+n);}}interfaceB{

intK=5;}5,5B、 0,5C、 0,0D、編譯程序產(chǎn)生編譯結(jié)果12、下面關(guān)于接口的說法中不正確的是 CoA、接口所有的方法都是抽象的接口所有的方法一定都是 public類型用于定義接口的關(guān)鍵字是 implements接口是Java中的特殊類,包含全局常量和抽象方法13、下面關(guān)于Java的說法不正確的是 Aabstract和final能同時(shí)修飾一個(gè)類抽象類不光可以做父類,也可以做子類抽象方法不一定聲明在抽象類中,也可以在接口中聲明為final的方法不能在子類中覆寫3、判斷題(x)(x)(V)(V)(V)(X)(V)(V)(X)(V)(X)一個(gè)類繼承了抽象類,則抽象類中的抽象方法需要在其子類中覆寫。final類型的變量是常量,其內(nèi)容不可改變。一個(gè)類不能即是子類又是父類。子類只能繼承父類的成員,但不能修改父類成員。Java語言只支持單繼承,不支持多繼承。子類可以繼承父類的所有成員。一個(gè)接口可以繼承一個(gè)抽象類。一個(gè)接口可以同時(shí)繼承多個(gè)接口。10、在程序中this和super調(diào)用構(gòu)造方法時(shí)可以同時(shí)出現(xiàn)。答題簡述this與super關(guān)鍵字的區(qū)別。答:this和super都可以調(diào)用類中的屬性、方法、構(gòu)造方法,但是this調(diào)用的是本類操作,而super是由子類調(diào)用父類操作。簡述方法的重載與覆寫的區(qū)別。答:方法重載是發(fā)生在一個(gè)類之中,方法名稱相同、參數(shù)的類型及個(gè)數(shù)不同,不受權(quán)限的限制。而覆寫是發(fā)生在繼承關(guān)系之中,子類定義了和父類定義了方法名稱相同、參數(shù)類型及個(gè)數(shù)、返回值類型完全相同的方法時(shí)所發(fā)生的操作,在子類覆寫父類方法時(shí),被覆寫的方法不能擁有比父類更嚴(yán)格的訪問權(quán)限。在已有類的基礎(chǔ)上派生新的類有什么好處?答:擴(kuò)充已有類的功能,并且利用方法的覆寫擴(kuò)充已有方法的功能。如何區(qū)分子類和父類?子類可以繼承父類的那些內(nèi)容?答:子類使用extends繼承父類或使用implements實(shí)現(xiàn)多個(gè)接口,子類可以繼承父類中的全部內(nèi)容,但是對于私有操作屬于隱式繼承,而非私有操作屬于顯式繼承。什么是多態(tài)?實(shí)現(xiàn)都態(tài)的方法有那些?答:多態(tài)是面向?qū)ο蟮淖詈笠粋€(gè)主要特征,它本身主要分為兩個(gè)方面:?方法的多態(tài)性:重載與覆寫卜重載:同一個(gè)方法名稱,根據(jù)不同的參數(shù)類型及個(gè)數(shù)可以完成不同的功能;卜覆寫:同一個(gè)方法,根據(jù)操作的子類不同,所完成的功能也不同。?對象的多態(tài)性:父子類對象的轉(zhuǎn)換。卜向上轉(zhuǎn)型:子類對象變?yōu)楦割悓ο?,格式:父?父類對象=子類實(shí)例,自動(dòng);卜向下轉(zhuǎn)型:父類對象變?yōu)樽宇悓ο?,格式:子?子類對象=(子類)父類實(shí)例,強(qiáng)制;接口有那些特征?如何定義和實(shí)現(xiàn)接口。答:接口之中全部由全局常量及抽象方法所組成,一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口,在 Java中使用interface定義接口,子類使用implements實(shí)現(xiàn)接口。接口和抽象類有那些區(qū)別?答:抽象類及接口區(qū)別如下。No.區(qū)別抽象類接口1定義關(guān)鍵字abstractclassinterface2組成常量、變量、抽象方法、普通方法、構(gòu)造方法全局常量、抽象方法3權(quán)限可以使用各種權(quán)限只能是public4關(guān)系一個(gè)抽象類可以實(shí)現(xiàn)多個(gè)接口接口不能夠繼承抽象類, 卻可以繼承多接口5使用子類使用extends繼承抽象類子類使用implements實(shí)現(xiàn)接口抽象類和接口的對象都是利用對象多態(tài)性的向上轉(zhuǎn)型,進(jìn)行接口或抽象類的實(shí)例化操作6設(shè)計(jì)模式模板設(shè)計(jì)模式工廠設(shè)計(jì)模式、代理設(shè)計(jì)模式7局限一個(gè)子類只能夠繼承一個(gè)抽象類一個(gè)子類可以實(shí)現(xiàn)多個(gè)接口8、簡述基本數(shù)據(jù)類型的自動(dòng)裝箱及自動(dòng)拆箱操作。答:在JDK1.5之后,基本數(shù)據(jù)類型可以采用直接賦值的方式為包裝類進(jìn)行對象的實(shí)例化操作, 而包裝類的對象也可以通過直接賦值的方式變回基本數(shù)據(jù)類型。5、編程題定義一個(gè)ClassName接口,接口中只有一個(gè)抽象方法getClassName()。設(shè)計(jì)一個(gè)類Company,該類實(shí)現(xiàn)接口ClassName中的方法getClassName(),功能是獲取該類的類名稱。編寫應(yīng)用程序使用 Company類。interfaceClassName{publicStringgetClassName();}classCompanyimplementsClassName{publicStringgetClassName(){return"Company";}}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){ClassNamename=newCompany();System.out.println(name.getClassName());}}程序運(yùn)行結(jié)果: Company建立一個(gè)人類(Person)和學(xué)生類(Student)功能要求:Person中包含4個(gè)保護(hù)型的數(shù)據(jù)成員name、addresssex、age分別為字符串,字符串,字符及整型。表示:姓名、地址、性別和年齡。一個(gè)四參構(gòu)造方法,一個(gè)無參構(gòu)造方法,及一個(gè)輸出方法用于顯示四種屬性。Student繼承Person,并增加輸出成員math、english存放數(shù)學(xué)和英語成績。一個(gè)六參構(gòu)造方法,一個(gè)兩參構(gòu)造方法,一個(gè)無參構(gòu)造方法,重寫輸出方法用于顯示全部六種種屬性 ^classPerson{private String name;private String address;privatecharsex;privateintage;publicPerson(){}publicPerson(Stringname,Stringaddress, charsex,intage){super();=name;this.address=address;this.sex=sex;this.age=age;}publicStringtoString(){return"姓名:"++”,地址:"+this.address+",性別:"+this.sex+”,年齡:"+this.age;}//setter、getter略}classStudentextendsPerson{private doublemath;private doubleenglish ;publicStudent(){}publicStudent(Stringname,Stringaddress, charsex,intage,doublemath,doubleenglish){super(name,address,sex,age);this.math=math;this.english=english;}publicStringtoString(){returnsuper.toString()+ ”,數(shù)學(xué)成績:"+this.math+”,英語成績:"+this.english;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs口){Studentstu=newStudent("張三","北京西城區(qū)甲11號(hào)德外大街德勝科技園美江大廈 A座-6層",男',25,90.0,99.0);System.out.println(stu);}}程序運(yùn)行結(jié)果: 姓名:張三,地址:北京西城區(qū)甲 11號(hào)德外大街德勝科技園美江大廈A座-6層,性別:男,年齡:25,數(shù)學(xué)成績:90.0,英語成績:99.0

定義員工類,具有姓名,年齡,性別屬性,并具有構(gòu)造方法,顯示數(shù)據(jù)方法,定義管理層類,繼承員工類,并有自己的屬性:職務(wù),年薪。定義職員類,繼承員工類,并有自己的屬性:所屬部門,月薪。classEmployee{privateStringname;privateintage;privatecharsex;publicEmployee。{}publicEmployee(Stringname, intage,charsex){super();=name;this.age=age;this.sex=sex;}publicStringtoString(){return"雇員姓名:"++",年齡:"+this.age+”,性別:"+this.sex}class}//setter、getter略ManagerextendsEmployee{private String job;private doubleincome;publicManager(){}publicManager(Stringname, intage,charsex,Stringjob, doubleincome){super(name,age,sex);this.job=job;this.income=income;}publicStringtoString(){returnsuper.toString()+ ",職位:"+this.job+”,年薪:"+this.income;}class}//setter、getter略Staff extendsEmployee{private Stringdept;private double salary;publicStaff(){}publicStaff(Stringname, intage,charsex,Stringdept, doublesalary){super(name,age,sex);this.dept=dept;this.salary=salary;}publicStringtoString(){returnsuper.toString()+ ”,部門:"+this.dept+",月薪:"+this.salary;

}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs口){Employeeea=newManager("張三",30,'男',"總監(jiān)",200000.0);Employeeeb=newStaff("李四",25,‘女‘,"業(yè)務(wù)部",1500.0);System.out.println(ea);System.out.println(eb);}}程序運(yùn)行結(jié)果:雇員姓名:張三,年齡:30,性別:男,職位:總監(jiān),年薪: 200000.0雇員姓名:李四,年齡:25,性別:女,部門:業(yè)務(wù)部,月薪: 1500.0定義類Shape表示一般二維圖形。Shape具有抽象方法area和perimeter,分別計(jì)算形狀的面積和周長。 試定義一些二維形狀類(如矩形、三角形、圓形等),這些類均為Shape類的子類。abstractclassShape{public abstract doublearea();public abstract doubleperimeter。;}classRectangleextendsShape{//矩形privatedoublewide;//寬privatedoublelongs;//長publicRectangle(){}publicRectangle(doublewide,doublelongs){super();this.wide=wide;this.longs=longs;}publicdoublearea(){returnthis.longs*this.wide;}publicdoubleperimeter(){return(this.longs+this.wide)*2;}}classTriangleextendsShape{ //三角形privatedoubleedgea;//邊長privatedoubleedgeb;//邊長privatedoubleedgec;//邊長publicTriangle(){}publicTriangle(doubleedgea,doubleedgeb,doubleedgec){super();this.edgea=edgea;

this.edgeb=edgeb;this.edgec=edgec;}publicdoublearea(){returnthis.edgea*this.edgeb/2;publicdoubleperimeter。{returnthis.edgea+this.edgeb+this.edgec;classRoundextendsShape{privatedoubleradius;//圓形//半徑publicclassRoundextendsShape{privatedoubleradius;//圓形//半徑publicRound(){publicRound(doubleradius){super();this.radius=radius;}publicdoublearea(){returnthis.radius*this.radius*Math.PI;}publicdoubleperimeter(){returnthis.radius*2*Math.PI;}}publicclassTestDemo{publicstaticvoidmain(Stringargs口){Shaperectangle=newRectangle(10.5,20.6);Shapetriangle=newTriangle(10.1,20.2,30.3);Shaperound=newRound(30.3);System.out.println("矩形面積:”+rectangle.area()System.out.println(”三角形面積”+triangle.area()+triangle.perimeter());System.out.println(”圓形面積:”+round.area()+”,圓形周長:"+round.perimeter());+",矩形周長:"+rectangle.perimeter());”,三角形周長:"+}}程序運(yùn)行結(jié)果:矩形面積:216.3,矩形周長:62.2三角形面積:102.00999999999999 ,三角形周長:60.599999999999994圓形面積:2884.2647993342534 ,圓形周長:190.38051480754146第5章、包及訪問控制權(quán)限 一一自我檢測(答案)1、填空題package 關(guān)鍵字可以定義一個(gè)包, import 關(guān)鍵字可以導(dǎo)入包。Java中存在四種訪問權(quán)限: private、default、protected、public。Java中可以使用importstatic包.類.*導(dǎo)入一個(gè)類的全部靜態(tài)方法。jar 命令可以將全部的class打成一個(gè)壓縮包。Java中java.lang包是自動(dòng)導(dǎo)入的。2、選擇題String和Object類在A 包中定義的。A、 java.lang B、 java.util C、 D、 java.sqlC 權(quán)限是同一包可以訪問,不同包的子類可以訪問,不同包的非子類不可以訪問。A、 private B、 default C、 protected D、 public下列說法正確的一項(xiàng)是 Cojava.lang.Integer是接口String定義在java.util包中Double類在java.lang包中Double類在java.lang.Object包中下列關(guān)于包、類和源文件的描述中,不正確的一項(xiàng)是 Co一個(gè)包可以包含多個(gè)類一個(gè)源文件中,只能有一個(gè) publicclass屬于同一個(gè)包的類在默認(rèn)情況不可以互相訪問,必須使用 import導(dǎo)入系統(tǒng)不會(huì)為源文件創(chuàng)建默認(rèn)的包TOC\o"1-5"\h\z定義類時(shí)不可能用到的關(guān)鍵字是 CoA、finalB、public C、protected D、 static3、判斷題java.lang包必須由用戶手工導(dǎo)入,否則無法使用。 (x )定義包后類的完整名稱是:包.類名稱。 ( V )4、簡答題簡述包的作用及使用。答:使用包可以將功能近似的類統(tǒng)一管理,同時(shí)可以避免項(xiàng)目之中同名類名稱沖突問題;簡述Java的四種訪問權(quán)限的區(qū)別。答:Java一共有四種訪問控制權(quán)限:private:只可以在一個(gè)類中訪問,其他類不允許訪問;default:可以在一個(gè)包中訪問,但是不同包不允許訪問;

protected:可以在同一個(gè)包中和不同包的子類所訪問,其他包的類不允許訪問;3、public3、//定義一個(gè)類//定義一個(gè)類classSingleton{publicstatic

returnSingletongetInstance(){instance//取得本類對象publicstatic

returnSingletongetInstance(){instance//取得本類對象publicclassTestDemo{publicstaticvoidpublicclassTestDemo{publicstaticvoidmain(Stringargs口){Singletoninst=inst=Singleton.null;getInstance();////Singletoninst=inst=Singleton.null;getInstance();////聲明對象利用’類.static方法()”取得實(shí)例化對象inst.print();//調(diào)用方法privatefinalstaticSingleton instance=newSingleton();privateSingleton(){//構(gòu)造方法私有化}publicvoidprint(){System.out.println("HelloWorld." );}第6章、異常的捕獲及處理自我檢測(答案)1、填空題1、Throwable下有那兩個(gè)子類:ErrorException2第6章、異常的捕獲及處理自我檢測(答案)1、填空題1、Throwable下有那兩個(gè)子類:ErrorException2、ArthmeticException類表示算術(shù)異常、3、一個(gè)try代碼后面必須跟著若干個(gè)catchArraysIndexOutOfBoundsException表示 數(shù)組越界 異常?!a段或者一個(gè) finally代碼段。}}程序運(yùn)行結(jié)果:HelloWorld.構(gòu)造方法被私有化,只能夠通過 getInstance()方法取得Singleton類的實(shí)例化對象,這樣不管外部如何操作,最終也只static方法,用于取得本類的實(shí)例化對象。static方法,用于取得本類的實(shí)例化對象。4、如果一個(gè)方法使用了—throws ,則編譯器會(huì)強(qiáng)制在使用此方法時(shí)進(jìn)行異常的處理。4、5、異常處理中使用finally5、2、選擇題1、使用那個(gè)關(guān)鍵字可以在程序中手工拋出異常A、throwsB、throwC、assertD、class2、下面關(guān)鍵字可以用在方法的聲明處?3、A、throwsB、assertC、classD、 interface為了捕獲一個(gè)異常,代碼必須放在下面.語句塊中。AA、try塊catch塊throws塊finally塊4、下面關(guān)于try塊的說法正確的是A、try塊后至少應(yīng)有一個(gè) catch塊C、 可能拋出異常的方法應(yīng)放在 try塊中5、finally塊中的代碼將 A。B、try塊后必須有finally塊D、 對拋出的異常的處理應(yīng)放在 try塊中A、總是被執(zhí)行如果try塊后面沒有catch塊時(shí),finally塊中的代碼才會(huì)執(zhí)行異常發(fā)生時(shí)才被執(zhí)行D、異常沒有發(fā)生時(shí)才執(zhí)行TOC\o"1-5"\h\z一個(gè)異常將終止 A。A、 整個(gè)程序 B、 只終止拋出異常的方法C、 產(chǎn)生異常的try塊 D、 上面的說法都不對所有異常的共同父類是 B。A、ErrorB、ExceptionCA、ErrorB、Exception3、判斷題一個(gè)try語句后有多個(gè)catch時(shí),捕獲范圍大的異常要放在捕獲范圍小的異常之后。 ( V )finally語句可以根據(jù)需要有選擇的添加。 (V )4、簡答題簡述RuntimeException和Exception的區(qū)別。答:異常(Exception)表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常(RuntimeException)表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見運(yùn)行錯(cuò)誤。 java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常, 即:Exception定義了必須處理的異常, 而RuntimeException定義的異??梢赃x擇性的進(jìn)行處理。RuntimeException是Exception的子類;try、catch、finally三種語句的功能是什么?答:try語句負(fù)責(zé)捕獲程序之中產(chǎn)生的異常;catch負(fù)責(zé)匹配異常類型,并且對指定的異常進(jìn)行處理;finally作為異常處理的統(tǒng)一出口,不管是否發(fā)生異常,都會(huì)執(zhí)行本程序。簡述Java中的異常處理機(jī)制。答:(1)、如果程序之中產(chǎn)生了異常,那么會(huì)自動(dòng)的由 JVM根據(jù)異常的類型,實(shí)例化一個(gè)指定異常類的對象;(2)、如果這個(gè)時(shí)候程序之中沒有任何的異常處理操作,則這個(gè)異常類的實(shí)例化對象將交給 JVM進(jìn)行處理,而JVM的默認(rèn)處理方式就是進(jìn)行異常信息的輸出,而后中斷程序執(zhí)行;(3)、如果程序之中存在了異常處理,則會(huì)由try語句捕獲產(chǎn)生的異常類對象;(4)、與try之后的每一個(gè)catch進(jìn)行匹配,如果匹配成功,則使用指定的 catch進(jìn)行處理,如果沒有匹配成功,則向后面的catch繼續(xù)匹配,如果沒有任何的 catch匹配成功,則這個(gè)時(shí)候?qū)⒔唤o JVM執(zhí)行默認(rèn)處理;(5)、不管是否有異常都會(huì)執(zhí)行finally程序,如果此時(shí)沒有異常,執(zhí)行完finally,則會(huì)繼續(xù)執(zhí)行程序之中的其他代碼,如果此時(shí)有異常沒有能夠處理(沒有一個(gè)catch可以滿足),那么也會(huì)執(zhí)行finally,但是執(zhí)行完finally之后,將默認(rèn)交給JVM進(jìn)行異常的信息輸出,并且程序中斷;4、 簡述Error和Exception的區(qū)別。答:Error:指的是JVM錯(cuò)誤,這個(gè)時(shí)候的程序并沒有執(zhí)行,無法處理;Exception:指的是程序之中出現(xiàn)的錯(cuò)誤信息,可以進(jìn)行異常處理,主要關(guān)心 Exceptiono5、 列舉三個(gè)常見的RuntimeException子類。答:NumberFormatException、ClassCastException、NullPointerException5、編程題1、 編寫應(yīng)用程序,從命令行輸入兩個(gè)小數(shù)參數(shù),求它們的商。要求程序中捕獲 NumberFormatException異常和ArithmeticException異常。classMyMath{publicintdiv(Stringx,Stringy)throwsNumberFormatException,ArithmeticException{//出現(xiàn)異常要交給被調(diào)用處出intresult=0;try{intnuma=Integer.parseInt(x);intnumb=Integer.parseInt(y);result=numa/numb;//除法計(jì)算}catch(Exceptione){throwe;//向上拋}returnresult;}}publicclassTestDemo{publicstaticvoidmain(Stringargs口){if(args.length!=2){System.out.println( "程序運(yùn)行出錯(cuò)!");System.exit(1); //程序退出}try{MyMathmm=newMyMath();System.out.println(mm.div(args[0],args[1])); // 被調(diào)用處處理異常}catch(Exceptione){e.printStackTrace();}}}第8章、Java新特性一一自我檢測(答案)1、填空題在使用泛型類時(shí),沒有指定泛型的類型,則編譯會(huì)出現(xiàn) 不安全的警告信息、程序在使用時(shí)會(huì)使用 Object類型進(jìn)行接收。通過?extends類 指定泛型的上限,通過?super類 指定泛型的下限。使用 ? 通配符可以接收全部的泛型類型實(shí)例,但卻不可修改泛型屬性內(nèi)容。Java中通過enum關(guān)鍵字定義一個(gè)枚舉、使用此關(guān)鍵字實(shí)際上就相當(dāng)于一個(gè)類繼承 java.lang.Enum枚舉中通過 values() 方法取得枚舉的全部內(nèi)容。Java提供的三個(gè)內(nèi)建的Annotation是:@Override、@Deprecated、@SuppressWarnings。從JDK1.8之中,接口內(nèi)可以定義有三類方法: 抽象方法、default定義的普通方法、static定義的靜態(tài)方法。在Java中一共提供有四個(gè)函數(shù)式接口,分別為: Funcation>Consumer、Supplier、Predicate;2、判斷題TOC\o"1-5"\h\z在枚舉類中可以定義抽象方法,而抽象方法只需要實(shí)現(xiàn)一次即可。 (X )枚舉中可以定義構(gòu)造方法,但要求每個(gè)枚舉對象都必須調(diào)用此構(gòu)造方法。 (V )枚舉中定義的構(gòu)造方法可以使用public權(quán)限聲明。 (x )作為函數(shù)式接口里面可以定義任意多個(gè)抽象方法。 (x )3、簡答題簡述泛型的作用答:泛型的主要作用是解決對象向下轉(zhuǎn)型所帶來的 ClassCastException,使用泛型之后,類之中的屬性或方法中的參數(shù)類型就由調(diào)用處來決定,而如果調(diào)用處不設(shè)置泛型,為了保證程序不出錯(cuò),則會(huì)使用 Object類型進(jìn)行定義。簡述枚舉的作用及實(shí)現(xiàn)特點(diǎn)。答:枚舉定義出了一個(gè)類所能使用的若干幾個(gè)實(shí)例化對象,枚舉可以直接采用“枚舉類型 .對象”的方式取得類中的實(shí)例化對象進(jìn)行操作。簡述JAVASE中三個(gè)內(nèi)建的Annotation的作用。答:在JAVASE之中定義了三種Annotation:@Override:準(zhǔn)確的方法覆寫;@Deprecated:某個(gè)結(jié)構(gòu)(類、方法、屬性)不再建議被用戶所使用;@SuppressWarnings:壓制編譯時(shí)所產(chǎn)生的警告信息。4、編程題1、 定義一個(gè)品牌電腦的枚舉類,里面只有固定的幾個(gè)電腦品牌,例如:Lenovo、HP、Dell、Apple、Acer。enumComputerBrand{LENOVO"聯(lián)想"),HP("惠普",DELL("戴爾"),APPLE("蘋果"),ACER"宏基");privateStringtitle;privateComputerBrand(Stringtitle){this.title=title;}@OverridepublicStringtoString(){returnthis.title;}}第9第9章、多線程自我檢測(答案)1、填空題Java多線程可以依靠 繼承Thread類、實(shí)現(xiàn)Runnable接口、實(shí)現(xiàn)Callable接口三種方式實(shí)現(xiàn)。多個(gè)線程操作同一資源的時(shí)候需要注意 同步,依靠synchronized 關(guān)鍵字實(shí)現(xiàn),實(shí)現(xiàn)手段是: 同步代碼塊和 同步方法 ,過多的使用,則會(huì)出現(xiàn) 死鎖問題。3、Java程序運(yùn)行時(shí),至少啟動(dòng) 兩個(gè)個(gè)線程,分另1」是: main線程和gc線程。4、main線程的優(yōu)先級是 中等優(yōu)先級。5、線程在生命周期中要經(jīng)歷五種狀態(tài),分別是 創(chuàng)建狀態(tài)、 就緒狀態(tài)、 運(yùn)行狀態(tài)、 堵塞狀態(tài)、銷毀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論