《Java基礎(chǔ)入門》課后題答案_第1頁
《Java基礎(chǔ)入門》課后題答案_第2頁
《Java基礎(chǔ)入門》課后題答案_第3頁
《Java基礎(chǔ)入門》課后題答案_第4頁
《Java基礎(chǔ)入門》課后題答案_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java基礎(chǔ)入門習(xí)題答案Java開發(fā)入門一、填空題1、 Java EE、Java SE、Java ME2、 JRE3、 javac4、 bin5、 path、classpath二、選擇題1、ABCD2、C3、D4、B5、B三、簡答題1、 面向?qū)ο?、跨平臺性、健壯性、安全性、可移植性、多線程性、動態(tài)性等。2、 JRE(Java Runtime Environment,Java運行時環(huán)境),它相當(dāng)于操作系統(tǒng)部分,提供了Java程序運行時所需要的基本條件和許多Java基礎(chǔ)類,例如,IO類、GUI控件類、網(wǎng)絡(luò)類等。JRE是提供給普通用戶使用的,如果你只想運行別人開發(fā)好的Java程序,那么,你的計算機上

2、必須且只需安裝JRE。JDK(Java Development Kit,Java開發(fā)工具包),它包含編譯工具、解釋工具、文檔制作工具、打包工具多種與開發(fā)相關(guān)的工具,是提供給Java開發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用Java語言時,首先必須下載和安裝JDK。JDK中已經(jīng)包含了JRE部分,初學(xué)者安裝JDK后不必再去下載和安裝JRE了。 四、編程題public class HelloWorld public static void main(String args) System.out.println(這是第一個Java程序!);第1章 Java編程基礎(chǔ)一、填空題1、 class2、 true和fa

3、lse3、 單行注釋、多行注釋、文檔注釋4、 基本數(shù)據(jù)類型、引用數(shù)據(jù)類型5、 1、2、4、86、 & & | | 7、 08、 59、 3410、 56 二、判斷題1、 錯2、對3、錯4、對5、錯三、選擇題1、 AD2、AD3、C4、ABCD5、C6 、A7、AC8、A9、B10、A 四、程序分析題1、 編譯不通過。int值4和b相加時,由于變量b的類型為byte,取值范圍沒有int類型大,存不下int類型的值,因此編譯不通過。2、 編譯不通過。這是因為y是在最里層的代碼塊中定義的一個變量,只有在那個代碼塊中才可使用,在使用y = x;語句時已經(jīng)超過了y變量的作用域,所以編譯無法通過。3、 打

4、印結(jié)果為:3。4、 打印結(jié)果為: 9 8 7五、問答題1、Java語言的八種基本數(shù)據(jù)類型有:byte字節(jié)型,占一個字節(jié)。short短整型,占兩個字節(jié)。int整型,占4個字節(jié)。long長整型,占8個字節(jié)。float單精度浮點型,占4個字節(jié)。double雙精度浮點型,占8個字節(jié)。char字符型,占兩個字節(jié)。boolean型,表示邏輯值,有true和false兩個值,分別占一個字節(jié)。2、如果使用“&”在表達式之間進行連接,那么無論任何情況,“&”兩邊的表達式都會參與計算。如果使用“&”進行連接,當(dāng)“&”左邊的表達式為false,則不會執(zhí)行其右邊的表達式。例如定義int x = 2,y = 0; bo

5、olean b = x 0表達是會發(fā)生被0除異常,因為x / y的表達式執(zhí)行了。而boolean b = x 0是不會出現(xiàn)這種異常的,因為x y為false,表達式x / y不會執(zhí)行。3、方法重載指的是在一個類中可以聲明多個同名的方法,而方法中參數(shù)的個數(shù)或者數(shù)據(jù)類型不一致。調(diào)用這些同名的方法時,JVM會根據(jù)實際參數(shù)的不同綁定到不同的方法。六、編程題1、參考答案public class Test01 public static void main(String args) int sum = 0;for (int i = 1; i 0) y = x + 3; else if (x = 0) y

6、= 0; else y = x * x - 1;return y;3、參考答案public class Test03 public static void main(String args) int arr = 25, 24, 12, 76, 101, 96, 28 ;for (int i = 0; i arr.length - 1; i+) / 定義內(nèi)層循環(huán)for (int j = 0; j arrj + 1) / 比較相鄰元素/ 下面的三行代碼用于交換兩個元素int temp = arrj;arrj = arrj + 1;arrj + 1 = temp;for (int i = 0; i

7、10)throw new NoThisSongException(您播放的歌曲不存在);System.out.println(正在播放歌曲);public class Test03 public static void main(String args) Player player = new Player();try player.play(13); catch (NoThisSongException e) System.out.println(異常信息為: +e.getMessage();第4章 多線程一、填空題1、 線程、通信2、 Thread、Runnable3、 就緒4、 sync

8、hronized、對象、this5、 進程6、 新建狀態(tài)(New)、就緒狀態(tài)(Runnable)、運行狀態(tài)(Running)、阻塞狀態(tài)(Blocked)、死亡狀態(tài)(Terminated)7、 10、18、 開啟一個新線程、run()方法9、 wait()、notify()、notifyAll()10、setDaemon(true)、start()二、判斷題1、錯 2、對 3、對 4、錯 5、錯三、選擇題1、B 2、AC 3、ABC 4、BC 5、ABD 6、ABC 7、C 8、D 9、AB 10、ABCD四、程序分析題1、程序不能編譯通過,因為RunHandler類沒有實現(xiàn)Runnable接口

9、,因此RunHandler的實例對象不能作為參數(shù)傳遞給Thread的構(gòu)造方法。2、程序不能編譯通過,因為Thread的子類A重寫的run()方法的訪問級別不能低于父類run()方法的。訪問級別3、程序不能編譯通過,因為同步方法中調(diào)用wait()方法的對象必須為同步鎖對象。4、t.start();五、簡答題1、一種是繼承java.lang包下的Thread類,覆寫Thread類的run()方法,在run()方法中實現(xiàn)運行在線程上的代碼。new Thread() public void run().start();另一種就是實現(xiàn)java.lang.Runnable接口,同樣是在run()方法中實現(xiàn)

10、運行在線程上的代碼。new Thread(new Runnable() public void run().start() 2、調(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()方法后,調(diào)用wait()

11、方法的線程就會解除wait狀態(tài),當(dāng)再次獲得同步鎖后,程序可以繼續(xù)向下執(zhí)行。六、編程題1、參考答案public class MyThread extends Threadpublic MyThread(String name) super(name); public void run() System.out.println(this.getName();public static void main(String args) new MyThread(Thread1).start();new MyThread(Thread2).start(); 2、參考答案public class MyRun

12、nable implements Runnable public void run() for (int i = 0; i 50; i+) System.out.println(new);public static void main(String args) new Thread(new MyRunnable().start();for (int i = 0; i 100; i+) System.out.println(main);3、參考答案public class Test01 public static void main(String args) Teacher t = new Te

13、acher();new Thread(t, 陳老師).start();new Thread(t, 高老師).start();new Thread(t, 李老師).start();class Teacher implements Runnable private int notes = 80;public void run() while (true) dispatchNotes(); / 調(diào)用售票方法if (notes 0) try Thread.sleep(10); / 經(jīng)過的線程休眠10毫秒 catch (InterruptedException e) e.printStackTrace(

14、);System.out.println(Thread.currentThread().getName() + -發(fā)出的筆記+ notes-);4、參考答案public class Accumulator extends Thread private int stratNum;public static int sum;public Accumulator(int startNum) this.stratNum = startNum;public static synchronized void add(int num) sum += num;public void run() int sum

15、 = 0;for (int i = 0; i 10; i+) sum += stratNum + i;add(sum);public static void main(String args) throws Exception Thread threadList = new Thread10;for (int i = 0; i 10; i+) threadListi = new Accumulator(10 * i + 1);threadListi.start();for (int i = 0; i = 0; i-) if (chi = A & chi = a & chi = z) buffe

16、r.append(String.valueOf(chi).toUpperCase();System.out.println(buffer.toString();2、 參考答案import java.text.DateFormat;import java.util.Calendar;import java.util.Date;public class Test02 public static void main(String args) Calendar calendar = Calendar.getInstance();calendar.add(Calendar.DATE, 100);Date

17、 date = calendar.getTime();DateFormat format = DateFormat.getDateInstance(DateFormat.FULL);String string = format.format(date);System.out.println(string);3、 參考答案import java.util.Random;public class Test03 public static void main(String args) Random rand = new Random(); int num = new int5; for (int i

18、 = 0; i num.length; i+) numi = 20 + rand.nextInt(31); System.out.println(numi); 第6章 集合類一、填空題1、集合2、Comparator3、有序、可重復(fù),無序、不可重復(fù)4、hashNext()、next()5、Collection、Map6、鍵、值7、ListIterator8、ArrayList、LinkedList,HashSet、TreeSet,HashMap、TreeMap9、put()、get()10、Collections、Arrays二、判斷題1、錯 2、對 3、對 4、錯 5、對三、選擇題1、BC

19、2、A 3、D 4、ABD 5、C 6、AB 7、D 8、AB 9、ABC 10、B四、程序分析題1、程序可以編譯通過,輸出結(jié)果是“a、b、c”,因為TreeSet集合不允許存放重復(fù)元素,第2次增加的元素c會覆蓋之前存入的元素c,所以輸出結(jié)果是“a、b、c”,而不是“a、b、c、c”。2、程序不可以編譯通過,這是由于向ArrayList集合中存入元素時,集合并不能記住元素的類型,因此在取出元素時,只能使用Object類型,而不能使用String類型。3、程序可以編譯通過,但是什么也沒有打印。使用ListIterator進行從后向前的遍歷集合,可以使用以下兩種方法,一是使用listIterato

20、r(int index)方法將索引index的值設(shè)置為集合元素的數(shù)目,也就是ListIterator it = list.listIterator(3);,二是將程序先從前向后遍歷,然后再從后向前遍歷。4、程序編譯不通過,由于Map集合在遍歷的過程中不能使用集合對象本身刪除元素,這會導(dǎo)致并發(fā)修改異常,若想刪除集合中的元素,可以使用Iterator的remove()方法。五、簡答題1、為了使程序能方便的存儲和操作數(shù)目不固定的一組數(shù)據(jù),JDK提供了一套類庫,這些類都位于java.util包中,統(tǒng)稱為集合。集合框架中包含3個接口,分別是List、Set、Map。2、List的特點是元素有序、元素可重

21、復(fù)。List接口的主要實現(xiàn)類有ArrayList和LinkedList。Set的特點是元素?zé)o序、元素不可重復(fù)。Set接口的主要實現(xiàn)類有HashSet和TreeSet。Map的特點是存儲的元素是鍵(Key)、值(Value)映射關(guān)系,元素都是成對出現(xiàn)的。Map接口的主要實現(xiàn)類有HashMap和TreeMap。3、Collection是一個單例集合接口。它提供了對集合對象進行基本操作的通用方法。Collections是一個工具類。它包含各種有關(guān)集合操作的方法。六、編程題1、參考答案import java.util.*;public class Test01 public static void m

22、ain(String args) ArrayList list = new ArrayList(); for(int i = 0; i 10; i+) list.add(A+i);Iterator it = list.iterator(); while(it.hasNext() Object obj = it.next(); System.out.println(obj);2、參考答案import java.util.*;public class Test02 public static void main(String args) HashSet hashSet = new HashSet(

23、);Person p1 = new Person(Jack,25);Person p2 = new Person(Rose,23);Person p3 = new Person(Jack,27);hashSet.add(p1);hashSet.add(p2);hashSet.add(p3);for(Object obj:hashSet)Person p=(Person)obj;System.out.println(+:+p.age);class PersonString name;int age;public Person(String name, int age) super()

24、; = name;this.age = age;public int hashCode() return name.hashCode();public boolean equals(Object obj) if (this = obj)return true;if (obj = null)return false;Person other = (Person) obj;return .equals();3、參考答案import java.util.*;public class Test03 public static void main(

25、String args) TreeMap map = new TreeMap(new MyComparator();map.put(1, Lucy);map.put(2, Lucy);map.put(3, John);map.put(4, Smith);map.put(5, Amanda);for (Object key : map.keySet() System.out.println(key + : + map.get(key);class MyComparator implements Comparator public int compare(Object obj1, Object o

26、bj2) String ele1 = (String) obj1;String ele2 = (String) obj2;return pareTo(ele1);第7章 IO(輸入輸出)一、填空題1、 字節(jié)流、字符流2、 File、java.io3、 SequenceInputStream4、 RandomAccessFile5、 管道流6、 LineNumberReader、BufferedReader、setLineNumber(int)、getLineNumber()7、 字節(jié)流、字符流8、 PrintStream、setOut(PrintStream out)9、 Un

27、icode10、newLine()二、判斷題1、 錯 2、對 3、對 4、對 5、錯 三、選擇題1、AB 2、C 3、C 4、ABCD 5、AB 6、ACD 7、A 8、A 9、D 10、A四、程序填空題 1、InputStreamReader、br.readLine()、運行結(jié)果為22、FileInputStream(file1)、FileOutputStream、fis.available() 五、問答題1、Java程序通過流來完成輸入和輸出,流是輸入或輸出信息的抽象。流通過Java的輸入/輸出系統(tǒng)與外設(shè)連接進行數(shù)據(jù)通信。流是抽象的對象,具體實現(xiàn)代碼在java.io包中。2、字節(jié)流的兩個基

28、類是InputStream和OutputStream,字符流的兩個基類是Reader和Writer,它們都是Object類的直接子類,字節(jié)流是處理以8位字節(jié)為基本單位的字節(jié)流類;Reader和Writer類是專門處理16位字節(jié)的字符流類。3、管道流分為管道輸入流(PipedInputStream)和管道輸出流(PipedOutputStream),通常由一個PipedInputStream實例對象和一個PipedOutputStream實例對象相互連接而實現(xiàn)管道通信,PipedOutputStream向管道寫入數(shù)據(jù),PipedInputStream從管道中讀取PipedOutputStream

29、寫入的數(shù)據(jù),管道流主要用來完成線程之間的通信。六、編程題 1、參考答案import java.io.*;public class Test01 public static void main(String args) throws Exception / 字節(jié)流拷貝FileInputStream in = new FileInputStream(E:/src.txt);FileOutputStream out = new FileOutputStream(E:/des1.txt);byte buf = new byte1024;int len;while (len = in.read(buf)

30、 != -1) out.write(buf, 0, len);in.close();out.close();/ 字符流拷貝BufferedReader bf = new BufferedReader(new FileReader(E:/src.txt);BufferedWriter bw = new BufferedWriter(new FileWriter(E:/des2.txt);String str;while (str = bf.readLine() != null) bw.write(str);bw.newLine();bf.close();bw.close();2、參考答案impo

31、rt java.io.*;public class Test02 public static void main(String args) throws Exception BufferedReader br = new BufferedReader(new InputStreamReader(System.in);String password = ;boolean b = false;for (int i = 0; i 5; i+) System.out.println(請輸入密碼:);password = br.readLine();if (password.equals() Syste

32、m.out.println(恭喜你進入游戲);b = true;break;if (!b) System.out.println(密碼錯誤,游戲結(jié)束);System.exit(0);第8章 GUI(圖形用戶界面)一、填空題1、 GUI、java.awt、javax.swing2、 適配器3、 Graphics4、 事件監(jiān)聽器5、 JComponent 6、 窗體事件、鍵盤事件、鼠標(biāo)事件、動作事件7、 WindowListener、windowClosing(WindowEvent e)8、 模態(tài)對話框、非模態(tài)對話框 9、 setLayout(null) 10、JMenuBar、JMenu、JM

33、enuItem二、判斷題1、對 2、錯 3、對 4、錯 5、錯 三、選擇題1、D 2、D 3、ABD 4、A 5、D 6、ABCD 7、ABD 8、ABC 9、D 10、C四、程序分析題1、參考答案extends Stdno = new JTextField();Name = new JTexxtField();2、參考答案card.next(cp);cp.add(jbt);五、簡答題1、參考答案l 通過實現(xiàn)XxxListener接口或者繼承XxxAdapter類實現(xiàn)一個事件監(jiān)聽器類,并對處理監(jiān)聽動作的方法進行重寫l 創(chuàng)建事件源對象和事件監(jiān)聽器對象l 調(diào)用事件源的addXxxLisntener

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

35、的圖形功能的交集。由于AWT 是依靠本地方法來實現(xiàn)其功能的,我們通常把AWT控件稱為重量級控件。 Swing 是在AWT的基礎(chǔ)上構(gòu)建的一套新的圖形界面系統(tǒng),它提供了AWT 所能夠提供的所有功能,并且用純粹的Java代碼對AWT 的功能進行了大幅度的擴充。由于在Swing 中沒有使用本地方法來實現(xiàn)圖形功能,我們通常把Swing控件稱為輕量級控件。 AWT和Swing之間的基本區(qū)別:AWT 是基于本地方法的C/C+程序,其運行速度比較快;Swing是基于AWT 的Java程序,其運行速度比較慢。對于一個嵌入式應(yīng)用來說,目標(biāo)平臺的硬件資源往往非常有限,而應(yīng)用程序的運行速度又是項目中至關(guān)重要的因素。在

36、這種矛盾的情況下,簡單而高效的AWT 當(dāng)然成了嵌入式Java的第一選擇。而在普通的基于PC或者是工作站的標(biāo)準(zhǔn)Java應(yīng)用中,硬件資源對應(yīng)用程序所造成的限制往往不是項目中的關(guān)鍵因素,所以在標(biāo)準(zhǔn)版的Java中則提倡使用Swing,也就是通過犧牲速度來實現(xiàn)應(yīng)用程序的功能。 六、編程題1、參考答案import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyMouseHandler extends JFrame public MyMouseHandler() final JLabel label = new JLabel(此處顯示鼠標(biāo)右鍵點擊的坐標(biāo));label.setO

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論