版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
36/36《Java基礎(chǔ)入門(mén)》課后習(xí)題Java開(kāi)發(fā)入門(mén)一、填空題1、Java的三大體系分別是_JavaSE_____、_JavaEE_____、_JavaME_____。2、Java程序的運(yùn)行環(huán)境簡(jiǎn)稱(chēng)之為JRE_____。3、編譯Java程序需要使用_javac_____命令。4、javac.exe和java.exe兩個(gè)可執(zhí)行程序存放在JDK安裝目錄的bin______目錄下。5、path______環(huán)境變量用來(lái)存儲(chǔ)Java的編譯和運(yùn)行工具所在的路徑,而_classpath_____環(huán)境變量則用來(lái)保存保存Java虛擬機(jī)要運(yùn)行的“.class”文件路徑。二、選擇題 1、以下選項(xiàng)中,哪些屬于JDK工具?(多選)ABCDA、Java編譯器B、Java運(yùn)行工具C、Java文檔生成工具D、Java打包工具2、Java屬于以下哪種語(yǔ)言?CA、機(jī)器語(yǔ)言B、匯編語(yǔ)言C、高級(jí)語(yǔ)言D、以上都不對(duì)3、下面哪種類(lèi)型的文件可以在Java虛擬機(jī)中運(yùn)行?DA、.javaB、.jreC、.exeD、.class4、安裝好JDK后,在其bin目錄下有許多exe可執(zhí)行文件,其中java.exe命令的作用是以下哪一種?
BA、Java文檔制作工具B、Java解釋器
C、Java編譯器
D、Java啟動(dòng)器
5、如果jdk的安裝路徑為:d:\jdk,若想在命令窗口中任何當(dāng)前路徑下,都可以直接使用javac和java命令,需要將環(huán)境變量path設(shè)置為以下哪個(gè)選項(xiàng)?BA.d:\jdk;
B.d
:\jdk\bin;
C.d:\jre\bin;
D.d:\jre;三、問(wèn)答題1、簡(jiǎn)述Java的特點(diǎn)。面向?qū)ο?、跨平臺(tái)性、健壯性、安全性、可移植性、多線(xiàn)程性、動(dòng)態(tài)性等。2、簡(jiǎn)述JRE與JDK的區(qū)別。JRE(JavaRuntimeEnvironment,Java運(yùn)行時(shí)環(huán)境),它相當(dāng)于操作系統(tǒng)部分,提供了Java程序運(yùn)行時(shí)所需要的基本條件和許多Java基礎(chǔ)類(lèi),例如,IO類(lèi)、GUI控件類(lèi)、網(wǎng)絡(luò)類(lèi)等。JRE是提供給普通用戶(hù)使用的,如果你只想運(yùn)行別人開(kāi)發(fā)好的Java程序,那么,你的計(jì)算機(jī)上必須且只需安裝JRE。JDK(JavaDevelopmentKit,Java開(kāi)發(fā)工具包),它包含編譯工具、解釋工具、文檔制作工具、打包工具多種與開(kāi)發(fā)相關(guān)的工具,是提供給Java開(kāi)發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用Java語(yǔ)言時(shí),首先必須下載和安裝JDK。JDK中已經(jīng)包含了JRE部分,初學(xué)者安裝JDK后不必再去下載和安裝JRE了。JDK(JavaDevelopmentKit,Java開(kāi)發(fā)工具包),它包含編譯工具、解釋工具、文檔制作工具、打包工具多種與開(kāi)發(fā)相關(guān)的工具,是提供給Java開(kāi)發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用Java語(yǔ)言時(shí),首先必須下載和安裝JDK。JDK中已經(jīng)包含了JRE部分,初學(xué)者安裝JDK后不必再去下載和安裝JRE了。四、編程題使用記事本編寫(xiě)一個(gè)HelloWorld程序,在dos命令行窗口編譯運(yùn)行。請(qǐng)按照題目的要求編寫(xiě)程序并給出運(yùn)行結(jié)果。publicclassHelloWorld{ publicstaticvoidmain(String[]args){ System.out.println("這是第一個(gè)Java程序!"); }}Java編程基礎(chǔ)一、填空題1、Java中的程序代碼都必須在一個(gè)類(lèi)中定義,類(lèi)使用__class____關(guān)鍵字來(lái)定義。2、布爾常量即布爾類(lèi)型的兩個(gè)值,分別是_true_____和_flase_____。3、Java中的注釋可分為三種類(lèi)型,分別是_單行注釋//__、__多行注釋_/**/__、文檔/注釋***/______。4、Java中的變量可分為兩種數(shù)據(jù)類(lèi)型,分別是_基本數(shù)據(jù)類(lèi)型_____和_引用數(shù)據(jù)類(lèi)型_____。5、在Java中,byte類(lèi)型數(shù)據(jù)占____1__個(gè)字節(jié),short類(lèi)型數(shù)據(jù)占__2____個(gè)字節(jié),int類(lèi)型數(shù)據(jù)占___4___個(gè)字節(jié),long類(lèi)型數(shù)據(jù)占____8__個(gè)字節(jié)。6、在邏輯運(yùn)算符中,運(yùn)算符___&___和___&&___用于表示邏輯與,__|____和__||____表示邏輯或。7、若x=2,則表達(dá)式(x++)/3的值是__0___。8、若inta=2;a+=3;執(zhí)行后,變量a的值為_(kāi)_5____。9、若int[]a={12,45,34,46,23};,則a[2]=__34____。10、若inta[3][2]={{123,345},{34,56},{34,56}},則a[2][1]=__56____。二、判斷題1、Java語(yǔ)言不區(qū)分大小寫(xiě)。錯(cuò)2、0xC5表示的是一個(gè)十六進(jìn)制整數(shù)。對(duì)3、continue語(yǔ)句只用于循環(huán)語(yǔ)句中,它的作用是跳出循環(huán)。錯(cuò)4、“/*…*/”中可以嵌套“//”注釋?zhuān)荒芮短住?*…*/”注釋。對(duì)5、-5%3的運(yùn)算結(jié)果是2。錯(cuò)三、選擇題1、以下選項(xiàng)中,哪些屬于合法的標(biāo)識(shí)符?(多選)ADA、Hello_WorldB、classC、123usernameD、username1232、關(guān)于方法重載的描述,以下選項(xiàng)中哪些是正確的?(多選)(AD)ABD A、方法名必須一致 B、返回值類(lèi)型必須不同 C、參數(shù)個(gè)數(shù)必須一致 D、參數(shù)的個(gè)數(shù)或類(lèi)型不一致3、以下關(guān)于變量的說(shuō)法錯(cuò)誤的是?CA、變量名必須是一個(gè)有效的標(biāo)識(shí)符B、變量在定義時(shí)可以沒(méi)有初始值C、變量一旦被定義,在程序中的任何位置都可以被訪(fǎng)問(wèn)D、在程序中,可以將一個(gè)byte類(lèi)型的值賦給一個(gè)int類(lèi)型的變量,不需要特殊聲明4、以下選項(xiàng)中,switch語(yǔ)句判斷條件可以接收的數(shù)據(jù)類(lèi)型有哪些?(多選)ABCDA、intB、byteC、charD、short5、假設(shè)intx=2,三元表達(dá)式x>0?x+1:5的運(yùn)行結(jié)果是以下哪一個(gè)?C A、0B、2C、3D、56、下面的運(yùn)算符中,用于執(zhí)行除法運(yùn)算是哪個(gè)?AA、/B、\C、%D、*7、下列語(yǔ)句哪些屬于循環(huán)語(yǔ)句?(多選)ACA、for語(yǔ)句B、if語(yǔ)句C、while語(yǔ)句D、switch語(yǔ)句8、下面哪種寫(xiě)法可以實(shí)現(xiàn)訪(fǎng)問(wèn)數(shù)組arr的第1個(gè)元素?A A、arr[0]B、arr(0)C、arr[1]D、arr(1)9、以下哪個(gè)選項(xiàng)可以正確創(chuàng)建一個(gè)長(zhǎng)度為3的二維數(shù)組?(B)CA、newint[2][3];B、newint[3][];C、newint[][3];D、以上答案皆不對(duì)10、請(qǐng)先閱讀下面的代碼。intx=1;inty=2;if(x%2==0){ y++;}else{ y--;}System.out.println("y="+y); 上面一段程序運(yùn)行結(jié)束時(shí),變量y的值為下列哪一項(xiàng)?AA、1B、2C、3D、switch語(yǔ)句四、程序分析題閱讀下面的程序,分析代碼是否能夠編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。否則請(qǐng)說(shuō)明編譯失敗的原因。代碼一:b=7(編譯不通過(guò)。int值4和b相加時(shí),由于變量b的類(lèi)型為byte,取值圍沒(méi)有int類(lèi)型大,存不下int類(lèi)型的值,因此編譯不通過(guò))publicclassTest01{ publicstaticvoidmain(String[]args){ byteb=3; b=b+4; System.out.println("b="+b); }}代碼二:不能,y只在{}有效(編譯不通過(guò)。這是因?yàn)閥是在最里層的代碼塊中定義的一個(gè)變量,只有在那個(gè)代碼)publicclassTest02{ publicstaticvoidmain(String[]args){ intx=12; { inty=96; System.out.println("xis"+x); System.out.println("yis"+y); } y=x; System.out.println("xis"+x); }}代碼三:3因?yàn)闆](méi)有break,,所以4以后都執(zhí)行publicclassTest03{ publicstaticvoidmain(Stringargs[]){ intx=4,j=0; switch(x){ case1: j++; case2: j++; case3: j++; case4: j++; case5: j++; default: j++; } System.out.println(j); }}代碼四:987publicclassTest04{ publicstaticvoidmain(Stringargs[]){ intn=9; while(n>6){ System.out.println(n); n--; } }}五、簡(jiǎn)答題1、請(qǐng)列舉Java語(yǔ)言中的八種基本數(shù)據(jù)類(lèi)型,并說(shuō)明每種數(shù)據(jù)類(lèi)型所占用的空間大小。Java語(yǔ)言的八種基本數(shù)據(jù)類(lèi)型有:byte字節(jié)型,占一個(gè)字節(jié)。short短整型,占兩個(gè)字節(jié)。int整型,占4個(gè)字節(jié)。long長(zhǎng)整型,占8個(gè)字節(jié)。float單精度浮點(diǎn)型,占4個(gè)字節(jié)。double雙精度浮點(diǎn)型,占8個(gè)字節(jié)。char字符型,占兩個(gè)字節(jié)。boolean型,表示邏輯值,有true和false兩個(gè)值,分別占一個(gè)字節(jié)。簡(jiǎn)述&&與&的區(qū)別并舉例說(shuō)明。如果使用“&”在表達(dá)式之間進(jìn)行連接,那么無(wú)論任何情況,“&”兩邊的表達(dá)式都會(huì)參與計(jì)算。如果使用“&&”進(jìn)行連接,當(dāng)“&&”左邊的表達(dá)式為false,則不會(huì)執(zhí)行其右邊的表達(dá)式。例如定義intx=2,y=0;booleanb=x<y&x/2>0表達(dá)是會(huì)發(fā)生被0除異常,因?yàn)閤/y的表達(dá)式執(zhí)行了。而booleanb=x<y&x/2>0是不會(huì)出現(xiàn)這種異常的,因?yàn)閤<y為false,表達(dá)式x/y不會(huì)執(zhí)行什么是方法重載?方法重載指的是在一個(gè)類(lèi)中可以聲明多個(gè)同名的方法,而方法中參數(shù)的個(gè)數(shù)或者數(shù)據(jù)類(lèi)型不一致。調(diào)用這些同名的方法時(shí),JVM會(huì)根據(jù)實(shí)際參數(shù)的不同綁定到不同的方法。六、編程題請(qǐng)按照題目的要求編寫(xiě)程序并給出運(yùn)行結(jié)果。1、請(qǐng)編寫(xiě)程序,實(shí)現(xiàn)計(jì)算“1+3+5+7+…+99”的值。 提示:使用循環(huán)語(yǔ)句實(shí)現(xiàn)自然數(shù)1~99的遍歷。在遍歷過(guò)程中,通過(guò)條件判斷當(dāng)前遍歷的數(shù)是否為奇數(shù),如果是就累加,否則不加。2、已知函數(shù)x+3(x>0)y=0(x=0)x2–1(x<0)請(qǐng)?jiān)O(shè)計(jì)一個(gè)方法實(shí)現(xiàn)上面的函數(shù),根據(jù)傳入的值x的不同,返回對(duì)應(yīng)的y值。提示:定義一個(gè)static修飾符修飾的方法,方法接收一個(gè)int類(lèi)型的參數(shù)x,返回值為int類(lèi)型。在方法中使用if…elseif..else語(yǔ)句針對(duì)x的值進(jìn)行三種情況的判斷。根據(jù)判斷結(jié)果分別執(zhí)行不同的表達(dá)式,并將結(jié)果賦予變量y。在方法的最后返回y的值。在main方法中調(diào)用設(shè)計(jì)好的方法,傳入一個(gè)int型的值,將方法的返回值打印。3、請(qǐng)編寫(xiě)程序,實(shí)現(xiàn)對(duì)數(shù)組{25,24,12,76,101,96,28}的排序。 提示:使用冒泡排序算法。面向?qū)ο螅ㄉ希┮弧⑻羁疹}1、面向?qū)ο蟮娜筇卣魇欠庋b性_、_繼承性_____和__多態(tài)性____。2、在Java中,可以使用關(guān)鍵字__new____來(lái)創(chuàng)建類(lèi)的實(shí)例對(duì)象。3、定義在類(lèi)中的變量被稱(chēng)為_(kāi)_成員變量____,定義在方法中的變量被稱(chēng)為局部變量______4、面向?qū)ο蟪绦蛟O(shè)計(jì)的重點(diǎn)是_類(lèi)___的設(shè)計(jì),__類(lèi)____是用來(lái)創(chuàng)建對(duì)象的模板。5、在非靜態(tài)成員方法中,可以使用關(guān)鍵字_this__訪(fǎng)問(wèn)類(lèi)的其它非靜態(tài)成員。6、當(dāng)一個(gè)對(duì)象被當(dāng)成垃圾從存中釋放時(shí),它的__finalize()____方法會(huì)被自動(dòng)調(diào)用。7、被static關(guān)鍵字修飾的成員變量被稱(chēng)為_(kāi)靜態(tài)變量_,它可以被該類(lèi)所有的實(shí)例對(duì)象共享。8、在一個(gè)類(lèi)中,除了可以定義屬性、方法,還可以定義類(lèi),這樣的類(lèi)被稱(chēng)為_(kāi)部類(lèi)_____。9、在Java中,提供了一個(gè)_javadoc_____命令,用于將程序中的文檔注釋提取出來(lái),生成HTML格式的幫助文檔。10、所謂類(lèi)的封裝是指在定義一個(gè)類(lèi)時(shí),將類(lèi)中的屬性私有化,即使用_private_____關(guān)鍵字來(lái)修飾。二、判斷題1、在定義一個(gè)類(lèi)的時(shí)候,如果類(lèi)的成員被private所修飾,該成員不能在類(lèi)的外部被直接訪(fǎng)問(wèn)。對(duì)2、Java中的每個(gè)類(lèi)都至少有一個(gè)構(gòu)造方法,一個(gè)類(lèi)中如果沒(méi)有定義構(gòu)造方法,系統(tǒng)會(huì)自動(dòng)為這個(gè)類(lèi)創(chuàng)建一個(gè)默認(rèn)的構(gòu)造方法。對(duì)3、聲明構(gòu)造方法時(shí),不能使用private關(guān)鍵字修飾。錯(cuò)4、類(lèi)中static修飾的變量或方法,可以使用類(lèi)名或?qū)ο蟮囊米兞吭L(fǎng)問(wèn)。對(duì)5、方法部類(lèi)中不能訪(fǎng)問(wèn)外部類(lèi)的成員變量。錯(cuò)三、選擇題1、類(lèi)的定義必須包含在以下哪種符號(hào)之間?BA、方括號(hào)[]B、花括號(hào){}C、雙引號(hào)“”D、圓括號(hào)()2、下面哪一個(gè)是正確的類(lèi)的聲明?D
A、publicvoidHH{…} B、publicclassMove(){…}
C、publicclassvoidnumber{} D、publicclassCar{…}3、在以下什么情況下,構(gòu)造方法會(huì)被調(diào)用?BA、類(lèi)定義時(shí)B、創(chuàng)建對(duì)象時(shí)C、調(diào)用對(duì)象方法時(shí)D、使用對(duì)象的變量時(shí)4、下面對(duì)于構(gòu)造方法的描述,正確有哪些?(多選)ABCA、方法名必須和類(lèi)名一樣B、方法名的前面沒(méi)有返回值類(lèi)型的聲明C、在方法中不能使用return語(yǔ)句返回一個(gè)值D、當(dāng)定義了帶參數(shù)的構(gòu)造方法,系統(tǒng)默認(rèn)的不帶參數(shù)的構(gòu)造方法依然存在5、使用this調(diào)用類(lèi)的構(gòu)造方法,下面的說(shuō)確的是?(多選)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)造方法的語(yǔ)句必須放在第一行D、不能在一個(gè)類(lèi)的兩個(gè)構(gòu)造方法中使用this互相調(diào)用6、下面哪些可以使用static關(guān)鍵字修飾?(多選)AC(ACD)A、成員變量B、局部變量C、成員方法D、成員部類(lèi)7、關(guān)于部類(lèi),下面說(shuō)確的是?(多選)ACD(ABCD)A、成員部類(lèi)是外部類(lèi)的一個(gè)成員,可以訪(fǎng)問(wèn)外部類(lèi)的其它成員B、外部類(lèi)可以訪(fǎng)問(wèn)成員部類(lèi)的成員C、方法部類(lèi)只能在其定義的當(dāng)前方法中進(jìn)行實(shí)例化D、靜態(tài)部類(lèi)中可以定義靜態(tài)成員,也可以定義非靜態(tài)成員8、下面對(duì)于單例設(shè)計(jì)模式的描述,正確的是?(多選)BCD(ABCD)A、類(lèi)中定義一個(gè)無(wú)參的構(gòu)造方法,并且聲明為私有B、在部創(chuàng)建一個(gè)該類(lèi)的實(shí)例對(duì)象,使用靜態(tài)變量引用該實(shí)例對(duì)象C、使用private修飾靜態(tài)變量,禁止外界直接訪(fǎng)問(wèn)D、定義靜態(tài)方法返回該類(lèi)實(shí)例請(qǐng)先閱讀下面的代碼DpublicclassTest{publicTest(){ System.out.println("構(gòu)造方法一被調(diào)用了");}publicTest(intx){ this(); System.out.println("構(gòu)造方法二被調(diào)用了");}publicTest(booleanb){ this(1); System.out.println("構(gòu)造方法三被調(diào)用了");}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)用了 D、以上三個(gè)選項(xiàng)之和10、Outer類(lèi)中定義了一個(gè)成員部類(lèi)Inner,需要在main()方法中創(chuàng)建Inner類(lèi)實(shí)例對(duì)象,以下四種方式哪一種是正確的?DA、Innerin=newInner() B、Innerin=newOuter.Inner();C、Outer.Innerin=newOuter.Inner();D、Outer.Innerin=newOuter().newInner();四、程序分析題閱讀下面的程序,分析代碼是否能夠編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。否則請(qǐng)說(shuō)明編譯失敗的原因。代碼一:不能,secret是私有成員,只能類(lèi)部訪(fǎng)問(wèn)(程序不能編譯通過(guò),因?yàn)樵陬?lèi)A中的成員變量secret用private修飾,所以在類(lèi)Test1中無(wú)法訪(fǎng)問(wèn))classA{ privateintsecret=5;}publicclassTest1{ publicstaticvoidmain(String[]args){ Aa=newA(); System.out.println(a.secret++); }}代碼二:250(程序不能編譯通過(guò),因?yàn)樵陟o態(tài)方法method()中不能訪(fǎng)問(wèn)非靜態(tài)成員變量x。)publicclassTest2{ intx=50; staticinty=200; publicstaticvoidmethod(){ System.out.println(x+y); } publicstaticvoidmain(String[]args){Test2.method(); }}代碼三:Inner為私有部類(lèi),不允許外部訪(fǎng)問(wèn)(inner)Innerinner=newOuter().newInner();可以用外部類(lèi)訪(fǎng)問(wèn)部類(lèi)publicclassOuter{ publicStringname="Outer"; privateclassInner{ Stringname="inner"; voidshowName(){ System.out.println(name); } } publicstaticvoidmain(String[]args){ Innerinner=newOuter().newInner(); System.out.println(); }}五、簡(jiǎn)答題1、構(gòu)造方法和普通的成員方法有什么區(qū)別?構(gòu)造方法是類(lèi)的一個(gè)特殊成員,它會(huì)在類(lèi)實(shí)例化對(duì)象時(shí)被自動(dòng)調(diào)用。而普通方法只有在使用的時(shí)候才會(huì)被調(diào)用。在定義構(gòu)造方法時(shí)要求方法名與類(lèi)名一樣、在方法名的前面沒(méi)有返回值類(lèi)型的聲明、在方法中不能使用return語(yǔ)句返回一個(gè)值單例設(shè)計(jì)模式具備哪些特點(diǎn)?單例模式可以保證在整個(gè)程序運(yùn)行期間針對(duì)該類(lèi)只存在一個(gè)實(shí)例對(duì)象。六、編程題1、請(qǐng)按照以下要求設(shè)計(jì)一個(gè)學(xué)生類(lèi)Student,并進(jìn)行測(cè)試。要求如下:1)Student類(lèi)中包含、成績(jī)兩個(gè)屬性2)分別給這兩個(gè)屬性定義兩個(gè)方法,一個(gè)方法用于設(shè)置值,另一個(gè)方法用于獲取值.3)Student類(lèi)中定義一個(gè)無(wú)參的構(gòu)造方法和一個(gè)接收兩個(gè)參數(shù)的構(gòu)造方法,兩個(gè)參數(shù)分別為和成績(jī)屬性賦值4)在測(cè)試類(lèi)中創(chuàng)建兩個(gè)Student對(duì)象,一個(gè)使用無(wú)參的構(gòu)造方法,然后調(diào)用方法給和成績(jī)賦值,一個(gè)使用有參的構(gòu)造方法,在構(gòu)造方法中給和成績(jī)賦值2、定義一個(gè)Father和Child類(lèi),并進(jìn)行測(cè)試。要求如下:1)Father類(lèi)為外部類(lèi),類(lèi)中定義一個(gè)私有的String類(lèi)型的屬性name,name的值為“zhangjun”。2)Child類(lèi)為Father類(lèi)的部類(lèi),其中定義一個(gè)introFather()方法,方法中調(diào)用Father類(lèi)的name屬性。3)定義一個(gè)測(cè)試類(lèi)Test,在Test類(lèi)的main()方法中,創(chuàng)建Child對(duì)象,并調(diào)用introFather()方法。面向?qū)ο螅ㄏ拢┮弧⑻羁疹}1、在Java語(yǔ)言中,允許使用已存在的類(lèi)作為基礎(chǔ)創(chuàng)建新的類(lèi),這種技術(shù)我們稱(chēng)為繼承______。2、一個(gè)類(lèi)如果實(shí)現(xiàn)一個(gè)接口,那么它就需要實(shí)現(xiàn)接口中定義的全部_方法_____,否則該類(lèi)就必須定義成_抽象類(lèi)_____。3、在程序開(kāi)發(fā)中,要想將一個(gè)包中的類(lèi)導(dǎo)入到當(dāng)前程序中,可以使用_import_____關(guān)鍵字。4、一個(gè)類(lèi)可以從其它的類(lèi)派生出來(lái),派生出來(lái)的類(lèi)稱(chēng)為_(kāi)子類(lèi)_____,用于派生的類(lèi)稱(chēng)為_(kāi)基類(lèi)_____或者_(dá)_父類(lèi)____。5、JDK中定義了大量的異常類(lèi),這些類(lèi)都是_Exception_____類(lèi)的子類(lèi)或者間接子類(lèi)。6、定義一個(gè)Java類(lèi)時(shí),如果前面加使用_final_____關(guān)鍵字修飾,那么該類(lèi)不可以被繼承。7、如果子類(lèi)想使用父類(lèi)中的成員,可以通過(guò)關(guān)鍵字__super____引用父類(lèi)的成員。8、在Java語(yǔ)言中,所有的類(lèi)都直接或間接繼承自_Object_____類(lèi)。9、異常的捕獲通常由try、catch兩部分組成,_try_____代碼塊用來(lái)存放可能發(fā)生異常,_catch_____代碼塊用來(lái)處理產(chǎn)生的異常。10、在Java語(yǔ)言中,要想是將一個(gè)已編譯的類(lèi)打包成jar文件,可以使用的命令是_jar-cvf_____,要想在命令行窗口運(yùn)行jar文件,可以使用的命令是__java-jar___。二、判斷題1、抽象方法必須定義在抽象類(lèi)中,所以抽象類(lèi)中的方法都是抽象方法。錯(cuò)2、Java中被final關(guān)鍵字修飾的變量,不能被重新賦值。對(duì)3、不存在繼承關(guān)系的情況下,也可以實(shí)現(xiàn)方法重寫(xiě)。錯(cuò)4、package聲明語(yǔ)句應(yīng)當(dāng)為Java源文件中的第一條語(yǔ)句。對(duì)5、接口中只能定義常量和抽象方法。錯(cuò)(對(duì))三、選擇題1、在類(lèi)的繼承關(guān)系中,需要遵循以下哪個(gè)繼承原則?BA、多重B、單一C、雙重D、不能繼承2、在Java語(yǔ)言中,以下哪個(gè)關(guān)鍵字用于在方法上聲明拋出異常?CA.tryB.catchC.throwsD.throw3、關(guān)于super關(guān)鍵字以下說(shuō)法哪些是正確的?(多選)ABD(ABC)A、super關(guān)鍵字可以調(diào)用父類(lèi)的構(gòu)造方法B、super關(guān)鍵字可以調(diào)用父類(lèi)的普通方法C、super與this不能同時(shí)存在于同一個(gè)構(gòu)造方法中D、super與this可以同時(shí)存在于同一個(gè)構(gòu)造方法中4、以下說(shuō)法哪些是正確的?(多選)ABCDA、Java語(yǔ)言中允許一個(gè)類(lèi)實(shí)現(xiàn)多個(gè)接口 B、Java語(yǔ)言中不允許一個(gè)類(lèi)繼承多個(gè)類(lèi)C、Java語(yǔ)言中允許一個(gè)類(lèi)同時(shí)繼承一個(gè)類(lèi)并實(shí)現(xiàn)一個(gè)接口D、Java語(yǔ)言中允許一個(gè)接口繼承一個(gè)接口5、類(lèi)中的一個(gè)成員方法被下面哪個(gè)修飾符修飾,該方法只能在本類(lèi)被訪(fǎng)問(wèn)?CA、publicB、protectedC、privateD、default6、關(guān)于抽象類(lèi)的說(shuō)法哪些是正確的?(多選)ACA、抽象類(lèi)中可以有非抽象方法。B、如果父類(lèi)是抽象類(lèi),則子類(lèi)必須重寫(xiě)父類(lèi)所有的抽象方法。C、不能用抽象類(lèi)去創(chuàng)建對(duì)象。D、接口和抽象類(lèi)是同一個(gè)概念。7、在Java中,要想讓一個(gè)類(lèi)繼承另一個(gè)類(lèi),可以使用以下哪個(gè)關(guān)鍵字?CA、inheritsB、implementsC、extendsD、modifies8、System類(lèi)位于以下哪個(gè)包中?DA、java.ioB、java.utilC、java.awtD、java.lang9、已知類(lèi)的繼承關(guān)系如下:AclassEmployee;classManagerextendsEmployee;classDirectorextendsEmployee;則以下語(yǔ)句能通過(guò)編譯的有哪些?A、Employeee=newManager();B、Directord=newManager();C、Directord=newEmployee();D、Managerm=newDirector();10、編譯運(yùn)行下面的程序,結(jié)果是什么?BpublicclassA{ publicstaticvoidmain(String[]args){ Bb=newB(); b.test(); } voidtest(){ System.out.print("A"); }}classBextendsA{ voidtest(){ super.test(); System.out.print("B"); }}A、產(chǎn)生編譯錯(cuò)誤B、代碼可以編譯運(yùn)行,并輸出結(jié)果ABC、代碼可以編譯運(yùn)行,但沒(méi)有輸出D、編譯沒(méi)有錯(cuò)誤,但會(huì)產(chǎn)生運(yùn)行時(shí)異常四、分析題閱讀下面的程序,分析代碼是否能編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。如果不能編譯通過(guò),請(qǐng)說(shuō)明原因。代碼一:進(jìn)入catch代碼塊進(jìn)入finally代碼塊(程序編譯能通過(guò),這是因?yàn)閕ntx=2/0;System.out.println(x);這兩條語(yǔ)句使用了try塊,捕獲了程序因?yàn)槌?而產(chǎn)生的異常情況,之后程序會(huì)繼續(xù)向下執(zhí)行,輸出“進(jìn)入catch代碼塊”,“進(jìn)入finally代碼塊”。)publicclassTest01{ publicstaticvoidmain(String[]args){ try{ intx=2/0; System.out.println(x); }catch(Exceptione){ System.out.println("進(jìn)入catch代碼塊"); }finally{ System.out.println("進(jìn)入finally代碼塊"); } }}代碼二:不能,final修飾shout,不能被重寫(xiě)(程序編譯不通過(guò),這是因?yàn)樵诔绦蛑惺褂昧薴inal關(guān)鍵字修飾Animal類(lèi),使得Animal類(lèi)不能被繼承。shout()方法中同樣使用了final關(guān)鍵字,使得該方法不能被重寫(xiě)。)finalclassAnimal{ publicfinalvoidshout(){ //程序代碼 }}classDogextendsAnimal{ publicvoidshout(){ //程序代碼 }}classTest02{ publicstaticvoidmain(String[]args){ Dogdog=newDog(); }} 代碼三:動(dòng)物叫!汪汪……classAnimal{ voidshout(){ System.out.println("動(dòng)物叫!"); }}classDogextendsAnimal{ voidshout(){ super.shout(); System.out.println("汪汪……"); }}publicclassTest03{ publicstaticvoidmain(String[]args){Animalanimal=newDog();animal.shout(); }} 代碼四:不能,Dog沒(méi)有實(shí)現(xiàn)Animal所有方法,Dog為抽象類(lèi)不能創(chuàng)建對(duì)象(程序編譯不通過(guò),因?yàn)榻涌谥卸x的方法不能有方法體,所以定義的eat()方法是錯(cuò)誤的。接口中的方法必須在子類(lèi)中全部實(shí)現(xiàn),由于run()方法在子類(lèi)中并沒(méi)有重新實(shí)現(xiàn),所以這也是錯(cuò)誤的。)interfaceAnimal{ voidbreathe(); voidrun(); voideat(){};}classDogimplementsAnimal{ publicvoidbreathe(){System.out.println("I’mbreathing")} publicvoideat(){System.out.println("I’meathing")}}publicclasstest04{publicstaticvoidmain(String[]args){Dogdog=newDog();dog.breathe();dog.eat();}}五、簡(jiǎn)答題 1、什么是方法重寫(xiě)?在繼承關(guān)系中,子類(lèi)的方法與父類(lèi)的某一方法具有一樣的方法名、返回類(lèi)型和參數(shù)列表,則稱(chēng)子類(lèi)的該方法重寫(xiě)(覆蓋)父類(lèi)的方法。2、什么是多態(tài)?多態(tài)意味著一個(gè)對(duì)象有著多種形態(tài),可以在特定的情況下,表現(xiàn)不同的狀態(tài),從而對(duì)應(yīng)著不同的屬性和方法。簡(jiǎn)單的說(shuō),多態(tài)就是使用父類(lèi)類(lèi)型的變量引用子類(lèi)對(duì)象,根據(jù)被引用子類(lèi)對(duì)象的特性,程序會(huì)得到不同的運(yùn)行效果。 3、抽象類(lèi)和接口的區(qū)別?在Java中,使用abstract關(guān)鍵字修飾的類(lèi)稱(chēng)之為抽象類(lèi)。抽象類(lèi)是不能被實(shí)例化的,通常需要寫(xiě)一個(gè)子類(lèi)來(lái)繼承抽象類(lèi),同時(shí)實(shí)例化子類(lèi)來(lái)獲得該類(lèi)的對(duì)象。抽象類(lèi)通常用于表示一種抽象的概念。接口可以說(shuō)是一種特殊的抽象類(lèi),接口中只能定義常量和抽象方法。由于接口的特殊性,在定義時(shí)需要使用interface關(guān)鍵字。六、編程題請(qǐng)按照題目的要求編寫(xiě)程序并給出運(yùn)行結(jié)果。設(shè)計(jì)一個(gè)學(xué)生類(lèi)Student和它的一個(gè)子類(lèi)Undergraduate,要求如下:Student類(lèi)有name()、和age(年齡)屬性,一個(gè)包含兩個(gè)參數(shù)的構(gòu)造方法,用于給name和age屬性賦值,一個(gè)show()方法打印Student的屬性信息本科生類(lèi)Undergraduate增加一個(gè)degree(學(xué)位)屬性。有一個(gè)包含三個(gè)參數(shù)的構(gòu)造方法,前兩個(gè)參數(shù)用于給繼承的name和age屬性賦值,第三個(gè)參數(shù)給degree專(zhuān)業(yè)賦值,一個(gè)show()方法用于打印Undergraduate的屬性信息在測(cè)試類(lèi)中分別創(chuàng)建Student對(duì)象和Undergraduate對(duì)象,調(diào)用它們的show()。2、設(shè)計(jì)一個(gè)Shape接口和它的兩個(gè)實(shí)現(xiàn)類(lèi)Square和Circle,要求如下:1)Shape接口中有一個(gè)抽象方法area(),方法接收有一個(gè)double類(lèi)型的參數(shù),返回一個(gè)double類(lèi)型的結(jié)果2)Square和Circle中實(shí)現(xiàn)了Shape接口的area()抽象方法,分別求正方形和圓形的面積并返回在測(cè)試類(lèi)中創(chuàng)建Square和Circle對(duì)象,計(jì)算邊長(zhǎng)為2的正方形面積和半徑為3的圓形面積3、自定義一個(gè)異常類(lèi)NoThisSoundException和Player類(lèi),在Player的play()方法中使用自定義異常,要求入下:NoThisSongException繼承Exception類(lèi),類(lèi)中有一個(gè)無(wú)參和一個(gè)接收一個(gè)String類(lèi)型參數(shù)的構(gòu)造方法,構(gòu)造方法中都使用super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造方法。Player類(lèi)中定義一個(gè)play(intindex)方法,方法接收一個(gè)int類(lèi)型的參數(shù),表示播放歌曲的索引,當(dāng)index>10時(shí),paly()方法用throw關(guān)鍵字拋出NoThisSongException異常,創(chuàng)建異常對(duì)象時(shí),調(diào)用有參的構(gòu)造方法,傳入“您播放的歌曲不存在”。在測(cè)試類(lèi)中創(chuàng)建Player對(duì)象,并調(diào)用play()方法測(cè)試自定義的NoThisSongException異常,使用try…catch語(yǔ)句捕獲異常,調(diào)用NoThisSongException的getMessage()方法打印出異常信息。多線(xiàn)程一、填空題1、一個(gè)應(yīng)用程序中有多條并發(fā)執(zhí)行的線(xiàn)索,每條線(xiàn)索都被稱(chēng)作一個(gè)線(xiàn)程______,它們會(huì)交替執(zhí)行,彼此間可以進(jìn)行_通信_(tái)____。2、在實(shí)現(xiàn)多線(xiàn)程的程序時(shí)有兩種方式,一是通過(guò)繼_Thread_____承類(lèi),二是通過(guò)實(shí)現(xiàn)Runnable______接口。3、yield()方法只能讓一樣優(yōu)先級(jí)或者更高優(yōu)先級(jí)、處于_就緒_____狀態(tài)的線(xiàn)程獲得運(yùn)行的機(jī)會(huì)。4、在Java語(yǔ)言中,同步方法需要用到關(guān)鍵字_synchronized_,對(duì)于同步方法而言無(wú)需指定同步鎖,它的同步鎖是方法所在的_對(duì)象_____,也就是_this_____(關(guān)鍵字)。5、在多任務(wù)系統(tǒng)中,每個(gè)獨(dú)立執(zhí)行的程序稱(chēng)之為_(kāi)線(xiàn)程_____,也就是“正在運(yùn)行的程序”。6、線(xiàn)程的整個(gè)生命周期分為五個(gè)階段,分別是_新建_____、就緒______、_運(yùn)行_____、_阻塞_____、和死亡_____。7、線(xiàn)程的優(yōu)先級(jí)用1~10之間的整數(shù)來(lái)表示,其中__10___代表優(yōu)先級(jí)最高,__1___代表優(yōu)先級(jí)最低。8、在Thread類(lèi)中,提供了一個(gè)start()方法,該方法用于啟動(dòng)線(xiàn)程______,當(dāng)新線(xiàn)程啟動(dòng)后,系統(tǒng)會(huì)自動(dòng)調(diào)用__run()____方法。9、要想解決線(xiàn)程間的通信問(wèn)題,可以使用__wait()____、notify()______、_notifyALL()_____方法。10、要將某個(gè)線(xiàn)程設(shè)置為后臺(tái)線(xiàn)程,需要調(diào)用該線(xiàn)程的_setDaemon(true)_____方法,該方法必須在_start()_____方法之前調(diào)用。二、判斷題1、當(dāng)我們創(chuàng)建一個(gè)線(xiàn)程對(duì)象時(shí),該對(duì)象表示的線(xiàn)程就立即開(kāi)始運(yùn)行。錯(cuò)2、如果前臺(tái)線(xiàn)程全部死亡,后臺(tái)線(xiàn)程也會(huì)自動(dòng)死亡。對(duì)3、同步代碼塊中的鎖對(duì)象可以是任意類(lèi)型的對(duì)象。對(duì)4、靜態(tài)方法不能使用synchronized關(guān)鍵字來(lái)修飾。錯(cuò)5、線(xiàn)程結(jié)束等待或者阻塞狀態(tài)后,會(huì)進(jìn)入運(yùn)行狀態(tài)。錯(cuò)三、選擇題1、Thread類(lèi)位于下列哪個(gè)包中?BA、java.ioB、java.langC、java.utilD、java.awt2、關(guān)于線(xiàn)程的創(chuàng)建過(guò)程,下面四種說(shuō)確的有哪些?(多選)ACA、定義Thread類(lèi)的子類(lèi),重寫(xiě)Thread類(lèi)的run()方法,創(chuàng)建該子類(lèi)的實(shí)例對(duì)象,調(diào)用對(duì)象的start()方法B、定義Thread類(lèi)的子類(lèi),重寫(xiě)Thread類(lèi)的run()方法,創(chuàng)建該子類(lèi)的實(shí)例對(duì)象,調(diào)用對(duì)象的run()方法C、定義一個(gè)實(shí)現(xiàn)Runnable接口的類(lèi)并實(shí)現(xiàn)run()方法,創(chuàng)建該類(lèi)實(shí)例對(duì)象,將其作為參數(shù)傳遞給Thread類(lèi)的構(gòu)造方法來(lái)創(chuàng)建Thread對(duì)象,調(diào)用Thread對(duì)象的start()方法D、定義一個(gè)實(shí)現(xiàn)Runnable接口的類(lèi)并實(shí)現(xiàn)run()方法,創(chuàng)建該類(lèi)對(duì)象,然后調(diào)用run()方法3、對(duì)于通過(guò)實(shí)現(xiàn)Runnable接口創(chuàng)建線(xiàn)程,下面說(shuō)確的有哪些?(多選)ABCA、適合多個(gè)一樣程序代碼的線(xiàn)程去處理同一個(gè)資源的情況B、把線(xiàn)程同程序代碼、數(shù)據(jù)有效的分離,很好的體現(xiàn)了面向?qū)ο蟮脑O(shè)計(jì)思想C、可以避免由于Java的單繼承帶來(lái)的局限性D、編寫(xiě)簡(jiǎn)單,可以不通過(guò)Thread類(lèi)直接創(chuàng)建線(xiàn)程4、對(duì)于線(xiàn)程的生命周期,下面四種說(shuō)確的有哪些?(多選)ABC(BC)
A、調(diào)用了線(xiàn)程的start()方法,該線(xiàn)程就進(jìn)入運(yùn)行狀態(tài)(就緒,還要獲得CPU使用權(quán))B、線(xiàn)程的run()方法運(yùn)行結(jié)束或被未catch的InterruptedException等異常終結(jié),那么該線(xiàn)程進(jìn)入死亡狀態(tài)C、線(xiàn)程進(jìn)入死亡狀態(tài),但是該線(xiàn)程對(duì)象仍然是一個(gè)Thread對(duì)象,在沒(méi)有被垃圾回收器回收之前仍可以像引用其它對(duì)象一樣引用它D、線(xiàn)程進(jìn)入死亡狀態(tài)后,調(diào)用它的start()方法仍然可以重新啟動(dòng)5、對(duì)于死鎖的描述,下面四種說(shuō)確有哪些?(多選)AB(ABD)A、當(dāng)兩個(gè)線(xiàn)程互相等待對(duì)方釋放同步鎖時(shí)會(huì)發(fā)生死鎖B、Java虛擬機(jī)沒(méi)有檢測(cè)和處理死鎖的措施C、一旦出現(xiàn)死鎖,程序會(huì)發(fā)生異常D、處于死鎖狀態(tài)的線(xiàn)程處于阻塞狀態(tài),無(wú)法繼續(xù)運(yùn)行6、下面四個(gè)選項(xiàng)中,哪些是線(xiàn)程進(jìn)入阻塞狀態(tài)的原因?(多選)ABCA、線(xiàn)程試圖獲取某個(gè)對(duì)象的同步鎖,而該鎖被其它線(xiàn)程持有B、線(xiàn)程調(diào)用了另一個(gè)線(xiàn)程的join()方法C、當(dāng)線(xiàn)程調(diào)用了一個(gè)阻塞式的IO方法D、線(xiàn)程調(diào)用了setDaemon(booleanb)方法7、線(xiàn)程調(diào)用sleep()方法后,該線(xiàn)程將進(jìn)入以下哪種狀態(tài)?CA、就緒狀態(tài) B、運(yùn)行狀態(tài)C、阻塞狀態(tài) D、死亡狀態(tài)8、在以下哪種情況下,線(xiàn)程進(jìn)入就緒狀態(tài)?DA、線(xiàn)程調(diào)用了sleep()方法時(shí) B、線(xiàn)程調(diào)用了join()方法(終止)C、線(xiàn)程調(diào)用了yield()方法時(shí) D、線(xiàn)程調(diào)用了notify()方法??9、下面四個(gè)選項(xiàng)中,對(duì)線(xiàn)程同步的目的描述正確的有哪些?(多選)AD(AB)A、鎖定資源,使同一時(shí)刻只有一個(gè)線(xiàn)程去訪(fǎng)問(wèn)它,防止多個(gè)線(xiàn)程操作同一個(gè)資源引發(fā)錯(cuò)誤B、提高線(xiàn)程的執(zhí)行效率C、讓線(xiàn)程獨(dú)占一個(gè)資源D、讓多個(gè)線(xiàn)程同時(shí)使用一個(gè)資源10、對(duì)于wait()方法,下面說(shuō)確的是?(多選)ABCDA、wait()方法的調(diào)用者是同步鎖對(duì)象B、wait()方法使線(xiàn)程進(jìn)入等待狀態(tài)C、調(diào)用同一鎖對(duì)象的notify()或notifyAll()方法可以喚醒調(diào)用wait()方法等待的線(xiàn)程D、調(diào)用wait()方法的線(xiàn)程會(huì)釋放同步鎖對(duì)象四、程序分析題閱讀下面的程序,分析代碼是否能編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。如果不能編譯通過(guò),請(qǐng)說(shuō)明原因。1.代碼一:不能,RunHandler沒(méi)有繼承Thread,不能用Thread創(chuàng)建對(duì)象(程序不能編譯通過(guò),因?yàn)镽unHandler類(lèi)沒(méi)有實(shí)現(xiàn)Runnable接口,因此RunHandler的實(shí)例對(duì)象不能作為參數(shù)傳遞給Thread的構(gòu)造方法。)classRunHandler{publicvoidrun(){System.out.println("run");}}publicclassTest{publicstaticvoidmain(String[]args){Threadt=newThread(newRunHandler());t.start();}}2.代碼二:this
is
run(程序不能編譯通過(guò),因?yàn)門(mén)hread的子類(lèi)A重寫(xiě)的run()方法的訪(fǎng)問(wèn)級(jí)別不能低于父類(lèi)run()方法的。訪(fǎng)問(wèn)級(jí)別)publicclassAextendsThread{protectedvoidrun(){ System.out.println("this
is
run()"); }publicstaticvoidmain(String[]args){Aa=newA();a.start(); }}3.代碼三:Exception(程序不能編譯通過(guò),因?yàn)橥椒椒ㄖ姓{(diào)用wait()方法的對(duì)象必須為同步鎖對(duì)象)publicclassTest{ privateObjectobj=newObject(); publicsynchronizedvoida(){ try{obj.wait();改this.wait() System.out.println("waiting"); }catch(InterruptedExceptione){ System.out.println("Exception"); } } publicstaticvoidmain(String[]args){ newTest().a(); }}4.為了使下面的程序能夠輸出“Threadisrunning”,請(qǐng)?jiān)谠诳崭裉幪钌舷鄳?yīng)的代碼。publicclassBimplementsRunnable{ publicstaticvoidmain(String[]args){Threadt=newThread(newB());__t.start()_____________________//此處填空 } publicvoidrun(){ System.out.println("Threadisrunning"); } publicvoidgo(){ start(1); } publicvoidstart(inti){ }}五、簡(jiǎn)答題java中有幾種方法可以實(shí)現(xiàn)一個(gè)線(xiàn)程?請(qǐng)舉例說(shuō)明。一種是繼承java.lang包下的Thread類(lèi),覆寫(xiě)Thread類(lèi)的run()方法,在run()方法中實(shí)現(xiàn)運(yùn)行在線(xiàn)程上的代碼。newThread(){publicvoidrun(){}}.start();另一種就是實(shí)現(xiàn)java.lang.Runnable接口,同樣是在run()方法中實(shí)現(xiàn)運(yùn)行在線(xiàn)程上的代碼。newThread(newRunnable(){publicvoidrun(){}}).start()sleep()和wait()有什么區(qū)別?調(diào)用sleep()方法,正在執(zhí)行的線(xiàn)程主動(dòng)讓出CPU去執(zhí)行其他線(xiàn)程,在sleep()方法指定的時(shí)間過(guò)后,CPU才會(huì)回到這個(gè)線(xiàn)程上繼續(xù)往下執(zhí)行,如果當(dāng)前線(xiàn)程進(jìn)入了同步鎖,sleep()方法并不會(huì)釋放鎖,即使當(dāng)前線(xiàn)程使用sleep()方法讓出了CPU,但其它被同步鎖擋住了的線(xiàn)程也無(wú)法得到執(zhí)行。wait()在一個(gè)已經(jīng)進(jìn)入了同步鎖的線(xiàn)程進(jìn)行調(diào)用,讓當(dāng)前線(xiàn)程暫時(shí)讓出同步鎖,以便其它正在等待此鎖的線(xiàn)程可以得到同步鎖并運(yùn)行。當(dāng)其它線(xiàn)程調(diào)用了notify()方法后,調(diào)用wait()方法的線(xiàn)程就會(huì)解除wait狀態(tài),當(dāng)再次獲得同步鎖后,程序可以繼續(xù)向下執(zhí)行。六、編程題請(qǐng)按照題目的要求編寫(xiě)程序并給出運(yùn)行結(jié)果。1、通過(guò)繼承Thread類(lèi)的方式創(chuàng)建兩個(gè)線(xiàn)程,在Thread構(gòu)造方法中指定線(xiàn)程的名字,并將這兩個(gè)線(xiàn)程的名字打印出來(lái)。2、通過(guò)實(shí)現(xiàn)Runnable接口的方式創(chuàng)建一個(gè)新線(xiàn)程,要求main線(xiàn)程打印100此次“main”,新線(xiàn)程打印50次“new”。3、模擬傳智播客的三個(gè)老師同時(shí)分發(fā)80份學(xué)習(xí)筆記,每個(gè)老師相當(dāng)于一個(gè)線(xiàn)程。4、編寫(xiě)10個(gè)線(xiàn)程,第一個(gè)線(xiàn)程從1加到10,第二個(gè)線(xiàn)程從11加到20...第十個(gè)線(xiàn)程從91加到100,最后再把十個(gè)線(xiàn)程結(jié)果相加。JavaAPI一、填空題1、在Java中定義了兩個(gè)類(lèi)來(lái)封裝對(duì)字符串的操作,它們分別是String_和_StringBuffer____。2、Java中的操作日期的類(lèi)有_Date___、_Calendar___、DateFormat____等。3、在程序中若想取得一個(gè)Runtime實(shí)例,則可以調(diào)用Runtime類(lèi)的靜態(tài)方法getRnutime()_____。4、Math類(lèi)中用于計(jì)算所傳遞參數(shù)平方根的方法是_sqrt()____。5、Java中專(zhuān)門(mén)用于將日期格式化為字符串的類(lèi)是_DateFormat____。6、Math類(lèi)中有兩個(gè)靜態(tài)常量PI和E,分別代表數(shù)學(xué)常量_π___和_e___。7、Java中的用于產(chǎn)生隨機(jī)數(shù)的類(lèi)是_Random___,它位于java.util____包中。8、String類(lèi)中用于返回字符串字符個(gè)數(shù)的方法是_length()____。9、System類(lèi)中所提供的屬性和方法都是_靜態(tài)___的,想要引用這些屬性和方法,直接使用System類(lèi)調(diào)用即可。10、已知sb為StringBuffer的一個(gè)實(shí)例,且sb.toString()的值為"abcde",則執(zhí)行sb.reverse()后,sb.toString()的值為_(kāi)”edcba_”___。二、判斷題1、String對(duì)象和StringBuffer對(duì)象都是字符串變量,創(chuàng)建后都可以修改。錯(cuò)2、用運(yùn)算符“==”比較字符串對(duì)象時(shí),如果兩個(gè)字符串的值一樣,結(jié)果為true。錯(cuò)3、System類(lèi)中的currentTimeMillis()方法返回一個(gè)long類(lèi)型的值。對(duì)4、Date、Calendar以與DateFormat類(lèi)都位于java.util包中。錯(cuò)分別java.util.Datejava.util.Calendarjava.text.DateFormat5、String類(lèi)的方法replace(CharSequencesrt1,CharSequencesrt2)返回一個(gè)新的字符串,它是通過(guò)用srt2替換此字符串中出現(xiàn)的所有srt1得到的。對(duì)三、選擇題。1、先閱讀下面的程序片段:CStringstr="abccdefcdh";String[]arr=str.split("c");System.out.println(arr.length);程序執(zhí)行后,打印的結(jié)果是幾?A、2個(gè)B、3個(gè)C、4個(gè)D、5個(gè)2、以下都是Math類(lèi)的常用方法,其中用于計(jì)算絕對(duì)值的方法是哪個(gè)?CA、ceil()B、floor()C、abs()D、random()3、Random對(duì)象能夠生成以下哪種類(lèi)型的隨機(jī)數(shù)?DA、intB、stringC、doubleD、A和C4、Strings="abcdedcba";則s.substring(3,4)返回的字符串是以下選項(xiàng)中的哪個(gè)?C A、cdB、deC、dD、e5、假若indexOf()方法未能找到所指定的子字符串,則返回以下選項(xiàng)中的哪個(gè)?CA、falseB、0C、-1D、以上答案都不對(duì)6、要產(chǎn)生[20,999]之間的隨機(jī)整數(shù)可以使用以下哪個(gè)表達(dá)式?BA.(int)(20+Math.random()*97)B.20+(int)(Math.random()*980)C.(int)Math.random()*999D.20+(int)Math.random()*9807、以下Math類(lèi)的方法中,-4.4通過(guò)哪個(gè)方法運(yùn)算后,結(jié)果為-5.0?D(C)A.round()四舍五入B.min()C.floor()小于參數(shù)最大整數(shù)D.ceil()大于參數(shù)最小整數(shù)8、下面的程序段執(zhí)行后,輸出的結(jié)果是以下哪個(gè)選項(xiàng)?AStringBufferbuf=newStringBuffer("Beijing2008");buf.insert(7,"");System.out.println(buf.toString());A、Beijing2008B、Beijing2008C、Beijing2008D、Beijing#20089、閱讀下面的程序:Apublic
class
test
{
public
static
void
main(String
args[])
{
int
i;
float
f
=
2.3f;
double
d
=
2.7;
i
=
((int)Math.ceil(f))
*
((int)Math.round(d));
System.out.println(i);
}
}
程序執(zhí)行后,運(yùn)行結(jié)果為以下哪個(gè)選項(xiàng)?A、
9
B、
5
C、6
D、
6.1
10、先閱讀下面的程序片段:BStringstr1=newString("java");Stringstr2=newString("java");StringBufferstr3=newStringBuffer("java");對(duì)于上述定義的變量,以下表達(dá)式的值為true的是哪個(gè)?A、
str1==str2;
B、str1.equals(str2);
C、str1==str3;
D、以上都不對(duì)四、程序分析題。閱讀下面的程序,分析代碼是否能編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。如果不能編譯通過(guò),請(qǐng)說(shuō)明原因。代碼一:57.0-8.0-58.1-6.1publicclassA{ publicstaticvoidmain(String[]args){ System.out.println(Math.abs(-5)); System.out.println(Math.ceil(6.6)); System.out.println(Math.floor(-7.8)); System.out.println(Math.round(-4.9)); System.out.println(Math.max(8.1,-8.1)); System.out.println(Math.min(6.1,-6.1)); } }代碼二:str.length():15str.charAt(0):dlastIndexOf(m):"10substring(2,4):feindexOf(g):5publicclassB{ publicstaticvoidmain(String[]args){ Strings="dfferghuklmbdfd"; System.out.println("str.length():"+s.length());System.out.println("str.charAt(0):"+s.charAt(0)); System.out.println("lastIndexOf(m):"+s.lastIndexOf('m')); System.out.println("substring(2,4):"+s.substring(2,4));System.out.println("indexOf(g):"+s.indexOf('g')); }}五、簡(jiǎn)答題
1、String和StringBuffer有什么區(qū)別?String類(lèi)是不可變類(lèi),即字符串值一旦初始化后就不可能改變。StringBuffer是可變字符串類(lèi),類(lèi)似String的緩沖區(qū),可以修改字符串的值。Date和Calender類(lèi)有什么區(qū)別和聯(lián)系?Date類(lèi)用來(lái)表示某個(gè)特定的瞬間,能夠精確到毫秒。而在實(shí)際應(yīng)用中,往往需要把一個(gè)日期中的年、月、日等信息單獨(dú)返回進(jìn)行顯示或處理,這個(gè)類(lèi)中的大部分方法都已被標(biāo)記過(guò)時(shí)。Calender類(lèi)基本取代了Date類(lèi),該類(lèi)中定義了一系列用于完成日期和時(shí)間字段操作的方法。Calendar的getTime()方法,getTime()返回一個(gè)表示Calendar時(shí)間值的Date對(duì)象,同時(shí)Calendar有一個(gè)setTime(Datedate)方法,setTime()方法接收一個(gè)Date對(duì)象,將Date對(duì)象表示的時(shí)間值設(shè)置給Calendar對(duì)象,通過(guò)這兩個(gè)方法就可以完成Date和Calendar對(duì)象之間的轉(zhuǎn)換。六、編程題請(qǐng)按照題目的要求編寫(xiě)程序并給出運(yùn)行結(jié)果編寫(xiě)一個(gè)程序,實(shí)現(xiàn)字符串大小寫(xiě)的轉(zhuǎn)換并倒序輸出,要求如下1)使用for循環(huán)將字符串“HelloWorld”從最后一個(gè)字符開(kāi)始遍歷。2)遍歷的當(dāng)前字符如果是大寫(xiě)字符,就使用toLowerCase()方法將其轉(zhuǎn)換為小寫(xiě)字符,反之則使用toUpperCase()方法將其轉(zhuǎn)換為大寫(xiě)字符3)定義一個(gè)StringBuffer對(duì)象,調(diào)用append()方法依次添加遍歷的字符,最后調(diào)用StringBuffer對(duì)象的toString()方法,并將得到的結(jié)果輸出。計(jì)算從今天算起,100天以后是幾月幾號(hào),并格式化成xxxx年x月x日的形式打印出來(lái)。提示:1)調(diào)用Calendar類(lèi)的add()方法計(jì)算100天后的日期2)調(diào)用Calendar的getTime()方法返回Date類(lèi)型對(duì)象2)使用FULL格式的DateFormat對(duì)象,調(diào)用format()方法格式化Date對(duì)象3、利用Random類(lèi)來(lái)產(chǎn)生5個(gè)20~50之間的隨機(jī)整數(shù)。 提示:[n-m](n、m均為整數(shù),n<m)之間的隨機(jī)數(shù)的公式為n+(newRandom()).nextInt(m-n+1)。集合類(lèi)一、填空題1、JDK中提供了一系列可以存儲(chǔ)任意對(duì)象的類(lèi),統(tǒng)稱(chēng)為集合。2、在創(chuàng)建TreeSet對(duì)象時(shí),可以傳入自定義的比較器,自定義比較器需要實(shí)現(xiàn)Comparator接口。3、Collection有兩個(gè)子接口分別是List和Set,List集合的特點(diǎn)是有序、可重復(fù),Set集合的特點(diǎn)是無(wú)序、不可重復(fù)。4、使用Iterator遍歷集合時(shí),首先需要調(diào)用hashNext()方法判斷是否存在下一個(gè)元素,若存在下一個(gè)元素,則調(diào)用next()方法取出該元素。5、集合按照存儲(chǔ)結(jié)構(gòu)的不同可分為單列集合和雙列集合,單列集合的根接口是Collection,雙列集合的根接口是Map。6、Map集合中的元素都是成對(duì)出現(xiàn)的,并且都是以鍵、值的映射關(guān)系存在。7、Iterator有一個(gè)子類(lèi),不僅可以對(duì)集合進(jìn)行從前向后遍歷,還可以從后向前遍歷,該類(lèi)是ListIterator。8、List集合的主要實(shí)現(xiàn)類(lèi)有ArrayList、LinkedList,Set集合的主要實(shí)現(xiàn)類(lèi)有HashSet、TreeSetMap集合的主要實(shí)現(xiàn)類(lèi)有HashMap、TreeMap。9、Map集合中存儲(chǔ)元素需要調(diào)用put()方法,要想根據(jù)該集合的鍵獲取對(duì)應(yīng)的值需要調(diào)用get()方法。10、java.util包中提供了一個(gè)專(zhuān)門(mén)用來(lái)操作集合的工具類(lèi),這個(gè)類(lèi)是Collections,還提供了一個(gè)專(zhuān)門(mén)用于操作數(shù)組的工具類(lèi),這個(gè)類(lèi)是Arrays。二、判斷題1、Set集合是通過(guò)鍵值對(duì)的方式來(lái)存儲(chǔ)對(duì)象的。錯(cuò)2、集合中不能存放基本數(shù)據(jù)類(lèi)型,而只能存放引用數(shù)據(jù)類(lèi)型。對(duì)3、如果創(chuàng)建的TreeSet集合中沒(méi)有傳入比較器,則該集合中存入的元素需要實(shí)現(xiàn)Comparable接口。對(duì)4、使用Iterator迭代集合元素時(shí),可以調(diào)用集合對(duì)象的方法增刪元素。錯(cuò)5、LinkedList在部維護(hù)了一個(gè)雙向循環(huán)鏈表,每一個(gè)元素節(jié)點(diǎn)都包含前一個(gè)元素節(jié)點(diǎn)和后一個(gè)元素節(jié)點(diǎn)的引用。對(duì)三、選擇題1、要想保存具有映射關(guān)系的數(shù)據(jù),可以使用以下哪些集合?(多選)BCA、ArrayListB、TreeMapC、HashMapD、TreeSet2、Java語(yǔ)言中,集合類(lèi)都位于哪個(gè)包中?AA、java.utilB、java.langC、java.arrayD、java.collections3、使用Iterator時(shí),判斷是否存在下一個(gè)元素可以使用以下哪個(gè)方法?DA、next()B、hash()C、hasPrevious()D、hasNext()4、關(guān)于foreach循環(huán)的特點(diǎn),以下說(shuō)法哪些是正確的?(多選)ABDA、foreach循環(huán)在遍歷集合時(shí),無(wú)需獲得容器的長(zhǎng)度B、foreach循環(huán)在遍歷集合時(shí),無(wú)需循環(huán)條件,也無(wú)需迭代語(yǔ)句C、foreach循環(huán)在遍歷集合時(shí)非常繁瑣D、foreach循環(huán)的語(yǔ)法格式為:for(容器中元素類(lèi)型臨時(shí)變量:容器變量)。5、在程序開(kāi)發(fā)中,經(jīng)常會(huì)使用以下哪個(gè)類(lèi)來(lái)存儲(chǔ)程序中所需的配置?C A、HashMapB、TreeSetC、PropertiesD、TreeMap 6、使用Enumeration遍歷集合時(shí),需要使用以下哪些方法?(多選)AB A、hasMoreElements()B、nextElement()C、next()D、hashNext()7、要想集合中保存的元素沒(méi)有重復(fù)并且按照一定的順序排列,可以使用以下哪個(gè)集合?DA、LinkedListB、ArrayListC、hashSetD、TreeSet 8、下列哪些說(shuō)法是正確的?(多選)ABA、LinkedList集合在增刪元素時(shí)效率較高B、ArrayList集合在查詢(xún)?cè)貢r(shí)效率較高C、HashMap不允許出現(xiàn)一對(duì)null鍵null值D、HashSet集合中元素可重復(fù)并且無(wú)序 9、以下哪些方法是LinkedList集合中定義的?(多選)ABC A、getLast()B、getFirst()C、remove(intindex)D、next() 10、獲取單列集合中元素的個(gè)數(shù)可以使用以下哪個(gè)方法?B A、length()B、size()C、get(intindex)D、add(Objectobj)四、分析題閱讀下面的程序,分析代碼是否能編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。如果不能編譯通過(guò),請(qǐng)說(shuō)明原因。代碼一:程序可以編譯通過(guò),輸出結(jié)果是“a、b、c”,因?yàn)門(mén)reeSet集合不允許存放重復(fù)元素,第2次增加的元素c會(huì)覆蓋之前存入的元素c,所以輸出結(jié)果是“a、b、c”,而不是“a、b、c、c”。importjava.util.*;publicclassTest01{ publicstaticvoidmain(String[]args){TreeSetts=newTreeSet();ts.add("b");ts.add("a");ts.add("c");ts.add("c");Iteratorit=ts.iterator();while(it.hasNext()){System.out.println(it.next());}}}代碼二:程序不可以編譯通過(guò),這是由于向ArrayList集合中存入元素時(shí),集合并不能記住元素的類(lèi)型,因此在取出元素時(shí),只能使用Object類(lèi)型,而不能使用String類(lèi)型。importjava.util.ArrayList;publicclassTest02{ publicstaticvoidmain(String[]args){ ArrayListlist=newArrayList(); list.add("a"); list.add("b"); list.add("c"); for(Stringobj:list){ System.out.println(obj); } }} 代碼三:程序可以編譯通過(guò),但是什么也沒(méi)有打印。使用ListIterator進(jìn)行從后向前的遍歷集合,可以使用以下兩種方法,一是使用listIterator(intindex)方法將索引index的值設(shè)置為集合元素的數(shù)目,也就是ListIteratorit=list.listIterator(3);,二是將程序先從前向后遍歷,然后再?gòu)暮笙蚯氨闅v。importjava.util.*;publicclassTest03{ publicstaticvoidmain(String[]args){ ArrayListlist=newArrayList(); list.add("demo_1"); list.add("demo_2"); list.add("demo_3"); ListIteratorit=list.listIterator(); while(it.hasPrevious()){ Objectobj=it.previous(); System.out.print(obj+""); } }}代碼四:程序編譯不通過(guò),由于Map集合在遍歷的過(guò)程中不能使用集合對(duì)象本身刪除元素,這會(huì)導(dǎo)致并發(fā)修改異常,若想刪除集合中的元素,可以使用Iterator的remove()方法。importjava.util.*;importjava.util.Map.*;publicclassTest04{ publicstaticvoidmain(String[]args){ Mapmap=newHashMap(); map.put(1,"Tom"); map.put(2,"Lucy"); map.put(3,"Annie"); SetkeySet=map.keySet(); Iteratorit=keySet.iterator(); while(it.hasNext()){ Objectkey=it.next(); System.out.println(key); map.remove(key); } }}五、簡(jiǎn)答題1、什么是集合,請(qǐng)列舉集合中常用的類(lèi)和接口?為了使程序能方便的存儲(chǔ)和操作數(shù)目不固定的一組數(shù)據(jù),JDK提供了一套類(lèi)庫(kù),這些類(lèi)都位于java.util包中,統(tǒng)稱(chēng)為集合。集合框架中包含3個(gè)接口,分別是List、Set、Map。集合中的List、Set、Map有什么區(qū)別?List的特點(diǎn)是元素有序、元素可重復(fù)。List接口的主要實(shí)現(xiàn)類(lèi)有ArrayList和LinkedList。Set的特點(diǎn)是元素?zé)o序、元素不可重復(fù)。Set接口的主要實(shí)現(xiàn)類(lèi)有HashSet和TreeSet。Map的特點(diǎn)是存儲(chǔ)的元素是鍵(Key)、值(Value)映射關(guān)系,元素都是成對(duì)出現(xiàn)的。Map接口的主要實(shí)現(xiàn)類(lèi)有HashMap和TreeMap。請(qǐng)說(shuō)說(shuō)Collection和Collections的有什么區(qū)別?Collection是一個(gè)單例集合接口。它提供了對(duì)集合對(duì)象進(jìn)行基本操作的通用方法。Collections是一個(gè)工具類(lèi)。它包含各種有關(guān)集合操作的方法。六、編程題請(qǐng)按照題目的要求編寫(xiě)程序并給出運(yùn)行結(jié)果。使用ArrayList集合,對(duì)其添加10個(gè)不同的元素,并使用Iterator遍歷該集合。提示:1)使用add()方法將元素添加到ArrayList集合中。2)調(diào)用集合的iterator()方法獲得Iterator對(duì)象,并調(diào)用Iterator的hasNext()和next()方法,迭代出集合中的所有元素。在HashSet集合中添加三個(gè)Person對(duì)象,把一樣的人當(dāng)做同一個(gè)人,禁止重復(fù)添加。提示:1)Person類(lèi)中定義name和age屬性,重寫(xiě)hashCode()方法和equals()方法,針對(duì)Person類(lèi)的name屬性進(jìn)行比較,如果name一樣,hashCode()方法的返回值一樣,equals方法返回true。3、選擇合適的Map集合保存5位學(xué)員的學(xué)號(hào)和,然后按學(xué)號(hào)的自然順序的倒序?qū)⑦@些鍵值對(duì)一一打印出來(lái)。提示:1)創(chuàng)建TreeMap集合。2)使用put()方法將學(xué)號(hào)(“1”、“2”、“3”、“4”、“5”)和(“Lucy”、“John”、“Smith”、“Aimee”、“Amanda”)存儲(chǔ)到Map中,存的時(shí)候可以打亂順序觀(guān)察排序后的效果。3)使用map.keySet()獲取鍵的Set集合。4)使用Set集合的iterator()方法獲得Iterator對(duì)象用于迭代鍵。5)使用Map集合的get()方法獲取鍵所對(duì)應(yīng)的值。IO(輸入輸出)一、填空題1、Java中的IO流,按照傳輸數(shù)據(jù)不同,可分為_(kāi)_字節(jié)流__和__字符流__。2、在Java中,__File__類(lèi)用于操作磁盤(pán)中文件和目錄,位于__java.io__包中。3、在Java中,_SequenceInputStream__類(lèi)用來(lái)把兩個(gè)或更多的InputStream輸入流對(duì)象合并為單個(gè)InputStream輸入流對(duì)象使用。4、Java中提供了一個(gè)類(lèi)__RandomAccessFile__,它不但具有讀寫(xiě)文件的功能,并且可以隨機(jī)地從文件的任何位置開(kāi)始執(zhí)行讀寫(xiě)數(shù)據(jù)的操作。5、在Java中,能實(shí)現(xiàn)線(xiàn)程間通信的流是__管道流__。6、Java中提供了一個(gè)可以在讀文件的同時(shí)記錄行號(hào)的類(lèi),這個(gè)類(lèi)是__LineNumberReader__,它是__BufferedReader__的直接子類(lèi),它通過(guò)__setLineNumber(int)__和__HYPERLINK"mk:@MSITStore:E:\\文件\\傳智播客教材\\J2SE6.0_CN.chm::/j
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025產(chǎn)品經(jīng)銷(xiāo)商合同模板
- 2025保安公司員工勞務(wù)派遣合同
- 2025財(cái)貿(mào)系統(tǒng)經(jīng)營(yíng)管理責(zé)任制的合同范本
- 2025年度高科技農(nóng)業(yè)作物損壞賠償與修復(fù)合同3篇
- 二零二五年度養(yǎng)殖場(chǎng)地承包與農(nóng)業(yè)科技研發(fā)合同3篇
- 2025年度房屋買(mǎi)賣(mài)合同房地產(chǎn)交易服務(wù)平臺(tái)接入合同3篇
- 2025年度農(nóng)村房屋租賃與農(nóng)村文化傳承保護(hù)合同
- 二零二五年度住宅電梯加裝工程監(jiān)理合同2篇
- 2025年度兼職協(xié)議書(shū)-城市綠化養(yǎng)護(hù)兼職人員服務(wù)合同3篇
- 二零二五年度水產(chǎn)養(yǎng)殖場(chǎng)養(yǎng)殖權(quán)及經(jīng)營(yíng)權(quán)轉(zhuǎn)讓協(xié)議3篇
- 水質(zhì)監(jiān)測(cè)方案案例
- 2024年02月上海滬劇藝術(shù)傳習(xí)所(上海滬劇院)招考聘用筆試近6年高頻考題難、易錯(cuò)點(diǎn)薈萃答案帶詳解附后
- 婚姻家庭關(guān)系心理講座
- 三叉苦種植技術(shù)規(guī)程-征求意見(jiàn)稿
- 七上-動(dòng)點(diǎn)、動(dòng)角問(wèn)題12道好題-解析
- 2024年九省聯(lián)考新高考 數(shù)學(xué)試卷(含答案解析)
- 2023年軟件主管年終業(yè)務(wù)工作總結(jié)
- 2023版設(shè)備管理體系標(biāo)準(zhǔn)
- 外來(lái)人員車(chē)輛入廠(chǎng)安全須知
- 01S201室外消火栓安裝圖集
- 浪潮入職培訓(xùn)考試題目
評(píng)論
0/150
提交評(píng)論