《Java基礎(chǔ)入門》課后習(xí)題及答案.doc
《《Java基礎(chǔ)入門》課后習(xí)題及答案.doc》由會員分享,可在線閱讀,更多相關(guān)《《Java基礎(chǔ)入門》課后習(xí)題及答案.doc(54頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、博學(xué)谷讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效Java基礎(chǔ)入門課后習(xí)題第1章 Java開發(fā)入門一、填空題1、Java的三大體系分別是_JavaSE_、_JavaEE_、_JavaME_。2、Java程序的運行環(huán)境簡稱之為JRE_。3、編譯Java程序需要使用_javac_命令。4、javac.exe和java.exe兩個可執(zhí)行程序存放在JDK安裝目錄的bin_目錄下。5、path_環(huán)境變量用來存儲Java的編譯和運行工具所在的路徑,而_classpath_環(huán)境變量則用來保存保存Java虛擬機要運行的“.class”文件路徑。二、選擇題1、以下選項中,哪些屬于JDK工具?(多選)ABCDA、Java編
2、譯器 B、Java運行工具 C、Java文檔生成工具 D、Java打包工具2、Java屬于以下哪種語言?CA、機器語言 B、 匯編語言 C、高級語言 D、以上都不對3、下面哪種類型的文件可以在Java虛擬機中運行?DA、.java B、.jre C、.exe D、.class4、安裝好JDK后,在其bin目錄下有許多exe可執(zhí)行文件,其中java.exe命令的作用是以下哪一種?BA、Java文檔制作工具 B、Java解釋器 C、Java編譯器D、Java啟動器5、如果jdk的安裝路徑為:d:jdk,若想在命令窗口中任何當(dāng)前路徑下,都可以直接使用javac和java命令,需要將環(huán)境變量path設(shè)
3、置為以下哪個選項?BAd:jdk;Bd:jdkbin;Cd:jrebin;Dd:jre;三、問答題1、簡述Java的特點。 面向?qū)ο蟆⒖缙脚_性、健壯性、安全性、可移植性、多線程性、動態(tài)性等。2、簡述JRE與JDK的區(qū)別。 JRE(Java Runtime Environment,Java運行時環(huán)境),它相當(dāng)于操作系統(tǒng)部分,提供了Java程序運行時所需要的基本條件和許多Java基礎(chǔ)類,例如,IO類、GUI控件類、網(wǎng)絡(luò)類等。JRE是提供給普通用戶使用的,如果你只想運行別人開發(fā)好的Java程序,那么,你的計算機上必須且只需安裝JRE。 JDK(Java Development Kit,Java開發(fā)工
4、具包),它包含編譯工具、解釋工具、文檔制作工具、打包工具多種與開發(fā)相關(guān)的工具,是提供給Java開發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用Java語言時,首先必須下載和安裝JDK。JDK中已經(jīng)包含了JRE部分,初學(xué)者安裝JDK后不必再去下載和安裝JRE了。 JDK(Java Development Kit,Java開發(fā)工具包),它包含編譯工具、解釋工具、文檔制作工具、打包工具多種與開發(fā)相關(guān)的工具,是提供給Java開發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用Java語言時,首先必須下載和安裝JDK。JDK中已經(jīng)包含了JRE部分,初學(xué)者安裝JDK后不必再去下載和安裝JRE了。 四、編程題使用記事本編寫一個HelloWor
5、ld程序,在dos命令行窗口編譯運行。請按照題目的要求編寫程序并給出運行結(jié)果。public class HelloWorld public static void main(String args) System.out.println(這是第一個Java程序!);第2章 Java編程基礎(chǔ)一、填空題1、Java中的程序代碼都必須在一個類中定義,類使用_class_關(guān)鍵字來定義。2、布爾常量即布爾類型的兩個值,分別是_true_和_flase_。3、Java中的注釋可分為三種類型,分別是_單行注釋/_、_多行注釋_/* */_、文檔/注釋* */_。4、Java中的變量可分為兩種數(shù)據(jù)類型,分別是
6、_基本數(shù)據(jù)類型_和_引用數(shù)據(jù)類型_。5、在Java中,byte類型數(shù)據(jù)占_1_個字節(jié),short類型數(shù)據(jù)占_2_個字節(jié),int類型數(shù)據(jù)占_4_個字節(jié),long類型數(shù)據(jù)占_8_個字節(jié)。6、在邏輯運算符中,運算符_&_和_&_用于表示邏輯與,_|_和_|_表示邏輯或。7、若x = 2,則表達式 ( x + + )3 的值是_0_。8、若int a =2; a+=3;執(zhí)行后,變量a的值為_5_。9、若int a=12,45,34,46,23; ,則a2= _34_。10、若int a32=123,345,34,56,34,56,則a21= _56_。二、判斷題1、Java語言不區(qū)分大小寫。錯2、0
7、xC5表示的是一個十六進制整數(shù)。對3、continue 語句只用于循環(huán)語句中,它的作用是跳出循環(huán)。錯4、“/*/”中可以嵌套“/”注釋,但不能嵌套“/*/”注釋。對5、-5%3的運算結(jié)果是2。錯三、選擇題1、以下選項中,哪些屬于合法的標(biāo)識符?(多選)ADA、Hello_World B、class C、123username D、username1232、關(guān)于方法重載的描述,以下選項中哪些是正確的?(多選)(AD)ABD A、方法名必須一致 B、返回值類型必須不同 C、參數(shù)個數(shù)必須一致 D、參數(shù)的個數(shù)或類型不一致3、以下關(guān)于變量的說法錯誤的是? CA、變量名必須是一個有效的標(biāo)識符B、變量在定義時
8、可以沒有初始值C、變量一旦被定義,在程序中的任何位置都可以被訪問D、在程序中,可以將一個byte類型的值賦給一個int類型的變量,不需要特殊聲明4、以下選項中,switch語句判斷條件可以接收的數(shù)據(jù)類型有哪些? (多選) ABCDA、int B、byte C、char D、short 5、假設(shè)int x = 2,三元表達式 x0?x+1:5 的運行結(jié)果是以下哪一個? CA、0 B、2 C、3 D、56、下面的運算符中,用于執(zhí)行除法運算是哪個? AA、/ B、 C、% D、*7、下列語句哪些屬于循環(huán)語句?(多選) AC A、for語句 B、if語句 C、while語句 D、switch語句8、下
9、面哪種寫法可以實現(xiàn)訪問數(shù)組arr的第1個元素?A A、arr0 B、arr(0) C、arr1 D、arr(1)9、以下哪個選項可以正確創(chuàng)建一個長度為3的二維數(shù)組?(B)CA、 new int 23; B、 new int3;C、 new int3; D、 以上答案皆不對10、請先閱讀下面的代碼。 int x = 1;int y = 2;if (x % 2 = 0) y+; else y-;System.out.println(y= + y);上面一段程序運行結(jié)束時,變量y的值為下列哪一項?AA、1 B、2 C、3 D、switch語句四、程序分析題閱讀下面的程序,分析代碼是否能夠編譯通過,如
10、果能編譯通過,請列出運行的結(jié)果。否則請說明編譯失敗的原因。代碼一:b=7(編譯不通過。int值4和b相加時,由于變量b的類型為byte,取值范圍沒有int類型大,存不下int類型的值,因此編譯不通過)public class Test01 public static void main(String args) byte b = 3;b = b + 4;System.out.println(b= + b);代碼二:不能,y只在有效(編譯不通過。這是因為y是在最里層的代碼塊中定義的一個變量,只有在那個代碼)public class Test02 public static void main(S
11、tring args)int x = 12; int y = 96; System.out.println(x is + x); System.out.println(y is + y);y = x; System.out.println(x is + x); 代碼三:3 因為沒有break,,所以4以后都執(zhí)行public class Test03 public static void main(String args) int x = 4, j = 0;switch (x) case 1:j+;case 2:j+;case 3:j+;case 4:j+;case 5:j+;default:j
12、+;System.out.println(j);代碼四:987public class Test04 public static void main(String args) int n = 9;while (n 6) System.out.println(n);n-;五、簡答題1、請列舉Java語言中的八種基本數(shù)據(jù)類型,并說明每種數(shù)據(jù)類型所占用的空間大小。Java語言的八種基本數(shù)據(jù)類型有:byte字節(jié)型,占一個字節(jié)。short短整型,占兩個字節(jié)。int整型,占4個字節(jié)。long長整型,占8個字節(jié)。float單精度浮點型,占4個字節(jié)。double雙精度浮點型,占8個字節(jié)。char字符型,占兩個
13、字節(jié)。boolean型,表示邏輯值,有true和false兩個值,分別占一個字節(jié)。2、 簡述&與&的區(qū)別并舉例說明。如果使用“&”在表達式之間進行連接,那么無論任何情況,“&”兩邊的表達式都會參與計算。如果使用“&”進行連接,當(dāng)“&”左邊的表達式為false,則不會執(zhí)行其右邊的表達式。例如定義int x = 2,y = 0; boolean b = x 0表達是會發(fā)生被0除異常,因為x / y的表達式執(zhí)行了。而boolean b = x 0是不會出現(xiàn)這種異常的,因為x 0 ) y = 0 ( x = 0 ) x2 1 ( x 10時,paly()方法用throw關(guān)鍵字拋出NoThisSongE
14、xception異常,創(chuàng)建異常對象時,調(diào)用有參的構(gòu)造方法,傳入“您播放的歌曲不存在”。3) 在測試類中創(chuàng)建Player對象,并調(diào)用play()方法測試自定義的NoThisSongException異常,使用trycatch語句捕獲異常,調(diào)用NoThisSongException的getMessage()方法打印出異常信息。第5章 多線程一、填空題1、一個應(yīng)用程序中有多條并發(fā)執(zhí)行的線索,每條線索都被稱作一個線程_,它們會交替執(zhí)行,彼此間可以進行_通信_。2、在實現(xiàn)多線程的程序時有兩種方式,一是通過繼_Thread_承類,二是通過實現(xiàn)Runnable_接口。3、yield()方法只能讓相同優(yōu)先級或
15、者更高優(yōu)先級、處于_就緒_狀態(tài)的線程獲得運行的機會。4、在Java語言中,同步方法需要用到關(guān)鍵字_synchronized_,對于同步方法而言無需指定同步鎖,它的同步鎖是方法所在的_對象_,也就是_this_(關(guān)鍵字)。5、在多任務(wù)系統(tǒng)中,每個獨立執(zhí)行的程序稱之為_線程_,也就是“正在運行的程序”。6、線程的整個生命周期分為五個階段,分別是_新建_、就緒_、_運行_、_阻塞_、和死亡_。7、線程的優(yōu)先級用110之間的整數(shù)來表示,其中_10_代表優(yōu)先級最高,_1_代表優(yōu)先級最低。8、在Thread類中,提供了一個start()方法,該方法用于啟動線程_,當(dāng)新線程啟動后,系統(tǒng)會自動調(diào)用_run()
16、_方法。9、要想解決線程間的通信問題,可以使用_wait()_、notify()_、_notifyALL()_方法。10、要將某個線程設(shè)置為后臺線程,需要調(diào)用該線程的_setDaemon(true)_方法,該方法必須在_start()_方法之前調(diào)用。二、判斷題1、當(dāng)我們創(chuàng)建一個線程對象時,該對象表示的線程就立即開始運行。錯2、如果前臺線程全部死亡,后臺線程也會自動死亡。對3、同步代碼塊中的鎖對象可以是任意類型的對象。對4、靜態(tài)方法不能使用synchronized關(guān)鍵字來修飾。錯5、線程結(jié)束等待或者阻塞狀態(tài)后,會進入運行狀態(tài)。錯三、選擇題1、Thread類位于下列哪個包中?B A、java.io
17、 B、java.lang C、java.util D、java.awt2、關(guān)于線程的創(chuàng)建過程,下面四種說法正確的有哪些?(多選)ACA、定義Thread類的子類,重寫Thread類的run()方法,創(chuàng)建該子類的實例對象,調(diào)用對象的start()方法B、定義Thread類的子類,重寫Thread類的run()方法,創(chuàng)建該子類的實例對象,調(diào)用對象的run()方法C、定義一個實現(xiàn)Runnable 接口的類并實現(xiàn)run()方法,創(chuàng)建該類實例對象,將其作為參數(shù)傳遞給Thread類的構(gòu)造方法來創(chuàng)建Thread對象,調(diào)用Thread對象的start()方法 D、定義一個實現(xiàn)Runnable 接口的類并實現(xiàn)r
18、un()方法,創(chuàng)建該類對象,然后調(diào)用run()方法3、對于通過實現(xiàn)Runnable接口創(chuàng)建線程,下面說法正確的有哪些?(多選)ABC A、適合多個相同程序代碼的線程去處理同一個資源的情況 B、把線程同程序代碼、數(shù)據(jù)有效的分離,很好的體現(xiàn)了面向?qū)ο蟮脑O(shè)計思想C、可以避免由于Java的單繼承帶來的局限性 D、編寫簡單,可以不通過Thread類直接創(chuàng)建線程4、對于線程的生命周期,下面四種說法正確的有哪些?(多選) ABC(BC) A、調(diào)用了線程的start()方法,該線程就進入運行狀態(tài) (就緒,還要獲得CPU使用權(quán)) B、線程的run()方法運行結(jié)束或被未catch的InterruptedExcep
19、tion等異常終結(jié),那么該線程進入死亡狀態(tài)C、線程進入死亡狀態(tài),但是該線程對象仍然是一個Thread對象,在沒有被垃圾回收器回收之前仍可以像引用其它對象一樣引用它 D、線程進入死亡狀態(tài)后,調(diào)用它的start()方法仍然可以重新啟動5、對于死鎖的描述,下面四種說法正確有哪些?(多選)AB(ABD) A、當(dāng)兩個線程互相等待對方釋放同步鎖時會發(fā)生死鎖 B、Java虛擬機沒有檢測和處理死鎖的措施 C、一旦出現(xiàn)死鎖,程序會發(fā)生異常 D、處于死鎖狀態(tài)的線程處于阻塞狀態(tài),無法繼續(xù)運行6、下面四個選項中,哪些是線程進入阻塞狀態(tài)的原因?(多選)ABCA、線程試圖獲取某個對象的同步鎖,而該鎖被其它線程持有B、線程
20、調(diào)用了另一個線程的join()方法C、當(dāng)線程調(diào)用了一個阻塞式的IO方法D、線程調(diào)用了setDaemon(boolean b)方法7、線程調(diào)用sleep()方法后,該線程將進入以下哪種狀態(tài)?CA、就緒狀態(tài) B、運行狀態(tài) C、阻塞狀態(tài) D、死亡狀態(tài) 8、在以下哪種情況下,線程進入就緒狀態(tài)?DA、線程調(diào)用了sleep()方法時 B、線程調(diào)用了join()方法(終止)C、線程調(diào)用了yield()方法時 D、線程調(diào)用了notify()方法?9、下面四個選項中,對線程同步的目的描述正確的有哪些?(多選)AD(AB)A、鎖定資源,使同一時刻只有一個線程去訪問它,防止多個線程操作同一個資源引發(fā)錯誤B、提高線程
21、的執(zhí)行效率C、讓線程獨占一個資源D、讓多個線程同時使用一個資源10、對于wait()方法,下面說法正確的是?(多選)ABCD A、wait()方法的調(diào)用者是同步鎖對象 B、wait()方法使線程進入等待狀態(tài) C、調(diào)用同一鎖對象的notify()或notifyAll()方法可以喚醒調(diào)用wait()方法等待的線程 D、調(diào)用wait()方法的線程會釋放同步鎖對象四、程序分析題閱讀下面的程序,分析代碼是否能編譯通過,如果能編譯通過,請列出運行的結(jié)果。如果不能編譯通過,請說明原因。1.代碼一:不能,RunHandler沒有繼承Thread,不能用Thread創(chuàng)建對象(程序不能編譯通過,因為RunHand
22、ler類沒有實現(xiàn)Runnable接口,因此RunHandler的實例對象不能作為參數(shù)傳遞給Thread的構(gòu)造方法。)class RunHandler public void run() System.out.println(run);public class Test public static void main(String args) Thread t = new Thread(new RunHandler(); t.start(); 2.代碼二:thisisrun(程序不能編譯通過,因為Thread的子類A重寫的run()方法的訪問級別不能低于父類run()方法的。訪問級別)publi
23、c class A extends Threadprotected void run() System.out.println(thisisrun(); public static void main(String args) A a = new A();a.start();3.代碼三:Exception(程序不能編譯通過,因為同步方法中調(diào)用wait()方法的對象必須為同步鎖對象)public class Testprivate Object obj=new Object();public synchronized void a()try obj.wait();改this.wait()Syst
24、em.out.println(waiting); catch (InterruptedException e) System.out.println(Exception);public static void main(String args) new Test().a();4.為了使下面的程序能夠輸出“Thread is running”,請在在空格處填上相應(yīng)的代碼。public class B implements Runnable public static void main(String args) Thread t = new Thread(new B();_t.start()_
25、/此處填空public void run() System.out.println(Thread is running);public void go() start(1);public void start(int i) 五、簡答題1、 java中有幾種方法可以實現(xiàn)一個線程?請舉例說明。一種是繼承java.lang包下的Thread類,覆寫Thread類的run()方法,在run()方法中實現(xiàn)運行在線程上的代碼。new Thread() public void run().start();另一種就是實現(xiàn)java.lang.Runnable接口,同樣是在run()方法中實現(xiàn)運行在線程上的代碼。
26、new Thread(new Runnable() public void run().start()2、 sleep() 和 wait() 有什么區(qū)別?調(diào)用sleep()方法,正在執(zhí)行的線程主動讓出CPU去執(zhí)行其他線程,在sleep()方法指定的時間過后,CPU才會回到這個線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進入了同步鎖,sleep()方法并不會釋放鎖,即使當(dāng)前線程使用sleep()方法讓出了CPU,但其它被同步鎖擋住了的線程也無法得到執(zhí)行。wait()在一個已經(jīng)進入了同步鎖的線程內(nèi)進行調(diào)用,讓當(dāng)前線程暫時讓出同步鎖,以便其它正在等待此鎖的線程可以得到同步鎖并運行。當(dāng)其它線程調(diào)用了notify(
27、)方法后,調(diào)用wait()方法的線程就會解除wait狀態(tài),當(dāng)再次獲得同步鎖后,程序可以繼續(xù)向下執(zhí)行。六、編程題請按照題目的要求編寫程序并給出運行結(jié)果。1、通過繼承Thread類的方式創(chuàng)建兩個線程,在Thread構(gòu)造方法中指定線程的名字,并將這兩個線程的名字打印出來。2、通過實現(xiàn)Runnable接口的方式創(chuàng)建一個新線程,要求main線程打印100此次“main”,新線程打印50次“new”。3、模擬傳智播客的三個老師同時分發(fā)80份學(xué)習(xí)筆記,每個老師相當(dāng)于一個線程。4、編寫10個線程,第一個線程從1加到10,第二個線程從11加到20.第十個線程從91加到100,最后再把十個線程結(jié)果相加。第6章 J
28、avaAPI一、填空題1、在Java中定義了兩個類來封裝對字符串的操作,它們分別是String_和_StringBuffer_。2、Java中的操作日期的類有_Date_、_Calendar_、DateFormat_等。3、在程序中若想取得一個Runtime實例,則可以調(diào)用Runtime類的靜態(tài)方法getRnutime()_。4、Math類中用于計算所傳遞參數(shù)平方根的方法是_sqrt()_。5、Java中專門用于將日期格式化為字符串的類是_DateFormat_。6、Math類中有兩個靜態(tài)常量PI和E,分別代表數(shù)學(xué)常量_和_e_。7、Java中的用于產(chǎn)生隨機數(shù)的類是_Random_,它位于ja
29、va.util_包中。8、String類中用于返回字符串字符個數(shù)的方法是_length()_。9、System類中所提供的屬性和方法都是_靜態(tài)_的,想要引用這些屬性和方法,直接使用System類調(diào)用即可。10、已知 sb 為 StringBuffer 的一個實例,且 sb.toString() 的值為 abcde , 則執(zhí)行sb. reverse()后,sb.toString()的值為_”edcba_”_。二、判斷題1、String對象和StringBuffer對象都是字符串變量,創(chuàng)建后都可以修改。錯2、用運算符“=”比較字符串對象時,如果兩個字符串的值相同,結(jié)果為true。錯3、System類中的currentTimeMillis()方法返回一個long類型的值。對4、Date、Calendar以及DateFormat類都位于java.util包中。錯 分別java.util.Date java.util.Calendarjava.text.DateFormat5、String類的方法 repl
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中西方家庭教育的對比ppt課件
- 《運籌學(xué)教程》第五版運籌學(xué)6對策論矩陣對策課件
- (部編版)統(tǒng)編版四年級語文下冊第2課《鄉(xiāng)下人家》ppt課件
- 全等三角形1--公開課一等獎ppt課件
- 《會跳舞樹葉娃娃》課件
- 9兒童詩兩首_人教版五年級的語文下冊課件
- 綠色植物是食物之源(我的課件)0
- 河南專版2022春八年級語文下冊第四單元16慶祝奧林匹克運動復(fù)興25周年習(xí)題課件新人教版
- 全國xx杯說課大賽機械類一等獎作品:鉗工車模的制作說課ppt課件
- 六年級下冊數(shù)學(xué)ppt課件-總復(fù)習(xí)(1)數(shù)的認(rèn)識-整數(shù)∣北師大版
- 牛頓第二定律優(yōu)秀完整公開課ppt課件
- 調(diào)脂與卒中防治課件
- 點到平面的距離課件
- 聚焦新醫(yī)改形勢下的醫(yī)院發(fā)展戰(zhàn)略
- 四肢血管超聲基礎(chǔ)