Java2-實(shí)用教程習(xí)題8-16WORD_第1頁
Java2-實(shí)用教程習(xí)題8-16WORD_第2頁
Java2-實(shí)用教程習(xí)題8-16WORD_第3頁
Java2-實(shí)用教程習(xí)題8-16WORD_第4頁
Java2-實(shí)用教程習(xí)題8-16WORD_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、文檔可能無法思考全面,請(qǐng)瀏覽后下載! 習(xí)題81.問答題(1)”hello”是正確的字符串常量嗎?(2)“你好KU”.length()和“ntt”.length()的值分別是多少?“Hello”.equals(“hello”)和”java”.equals(“java”)的值分別是是多少?“Bird”.compareTo(“Bird fly”)的值是正數(shù)還是負(fù)數(shù)?“I love this game”.contains(“l(fā)ove”)的值是true嗎?“RedBird”.indexOf(“Bird”)的值是多少?“RedBird”.indexOf(“Cat”)的值是多少?執(zhí)行Integer.pars

2、eInt(“12.9”);會(huì)發(fā)生異常嗎?2 選擇題1. 下列哪個(gè)敘述是正確的?( )A. String類是final類,不可以有子類B. String類在java.util包中C. “abc”=”abc”的值是falseD. “abc”.equals(”Abc”)的值是true2. 下列哪個(gè)表達(dá)式是正確的(無編譯錯(cuò)誤)?A. int m=Float.parseFloat(“567”);B. int m=Short.parseShort(“567”);C. byte m=Integer.parseInt(“2”);D. float m=Float.parseDouble(“2.9”);3. 對(duì)于

3、如下代碼,下列哪個(gè)敘述是正確的?public class E public static void main(String args) String strOne="bird"String strTwo=strOne;strOne="fly"System.out.println(strTwo);/【代碼】A. 程序編譯出現(xiàn)錯(cuò)誤B. 程序標(biāo)注的【代碼】的輸出結(jié)果是birdC. 程序標(biāo)注的【代碼】的輸出結(jié)果是flyD. 程序標(biāo)注的【代碼】的輸出結(jié)果是null4. 對(duì)于如下代碼,下列哪個(gè)敘述是正確的?public class E public static v

4、oid main(String args) String s1=args1;String s2=args2;String s3=args3;System.out.println(s3);20 / 20A. 程序出現(xiàn)編譯錯(cuò)誤B. 無編譯錯(cuò)誤,在命令行執(zhí)行程序”java E I love this game”,程序輸出thisC. 無編譯錯(cuò)誤,在命令行執(zhí)行程序”java E let us go ”,程序無運(yùn)行異常D. 無編譯錯(cuò)誤,在命令行執(zhí)行程序”java E 0 1 2 3 4 5 6 7 8 9”,程序輸出35. 下列哪個(gè)敘述是錯(cuò)誤的?A.”9dog”.matches(“ddog”)的值是tr

5、ueB.”12hello567”.replaceAll(”123456789+”,”)返回的字符串是helloC.new Date(1000)對(duì)象含有的時(shí)間是公元后1000小時(shí)的時(shí)間D.“hellon”是正確的字符串常量3.閱讀程序1.請(qǐng)說出E類中標(biāo)注的【代碼】的輸出結(jié)果。public class E public static void main(String args) String str=new String("蘋果");modify(str);System.out.println(str);/【代碼】public static void modify(String

6、 s) s=s+"好吃"結(jié)果:蘋果2.請(qǐng)說出E類中標(biāo)注的【代碼】的輸出結(jié)果。import java.util.StringTokenizer;class GetTokenString s;public String getToken(int index,String str) StringTokenizer fenxi=new StringTokenizer(str);int number=fenxi.countTokens();s=new Stringnumber+1;int k=1;while(fenxi.hasMoreTokens()String temp=fenxi

7、.nextToken();sk=temp;k+;if (index<=number) return sindex;elsereturn null;public class E public static void main(String args) String str="We Love This Game"GetToken token=new GetToken();String s1=token.getToken(2, str),s2=token.getToken(4, str);System.out.println(s1+":"+s2);/【代

8、碼】結(jié)果:Love:Game3.請(qǐng)說出E類中標(biāo)注的【代碼1】和【代碼2】的輸出結(jié)果。public class E public static void main(String args) byte d="abc我們喜歡籃球".getBytes();System.out.println(d.length);/【代碼1】String s=new String(d, 0, 7);System.out.println(s);/【代碼2】結(jié)果:15abc我們4.請(qǐng)說出E類中標(biāo)注的【代碼】的輸出結(jié)果。class MyStringpublic String getString(Strin

9、g s) StringBuffer stringBuffer=new StringBuffer();for (int i = 0; i < s.length(); i+) if(i%2=0)char c=s.charAt(i);stringBuffer.append(c);return new String(stringBuffer);public class E public static void main(String args) String s="1234567890"MyString mString=new MyString();System.out.pr

10、intln(mString.getString(s);/【代碼】結(jié)果:135795.請(qǐng)說出E類中標(biāo)注的【代碼】的輸出結(jié)果。public class E public static void main(String args) String regex="djavaw1,"String str1="88javaookk"String str2="9javaHello"if (str1.matches(regex) System.out.println(str1);if (str2.matches(regex) System.out.pr

11、intln(str2);/【代碼】結(jié)果:9javaHello(6)上機(jī)實(shí)習(xí)下列程序,學(xué)習(xí)怎樣在一個(gè)月內(nèi)(一周內(nèi)、一年內(nèi))前后滾動(dòng)日期,例如,假設(shè)是3月(有31天)10號(hào),如果在月內(nèi)滾動(dòng),那么向后滾動(dòng)10天就是3月20日,向后滾動(dòng)25天,就是3月4號(hào)(因?yàn)橹辉谠撛聝?nèi)滾動(dòng))。如果在年內(nèi)滾動(dòng),那么向后滾動(dòng)25天,就是4月4號(hào)。import java.util.*;public class RollDayInMonthpublic static void main(String args)Calendar calendar=Calendar.getInstance();calendar.setTime

12、(new Date();String s=String.format("%tF(%<tA)",calendar);System.out.println(s);int n=25;System.out.println("向后滾動(dòng)(在月內(nèi))"+n+"天");calendar.roll(calendar.DAY_OF_MONTH,n);s=String.format("%tF(%<ta)",calendar);System.out.println(s);System.out.println("再向后滾

13、動(dòng)(在年內(nèi))"+n+"天");calendar.roll(calendar.DAY_OF_YEAR,n);s=String.format("%tF(%<ta)",calendar);System.out.println(s);結(jié)果:2016-12-14(星期三)向后滾動(dòng)(在月內(nèi))25天2016-12-08(星期四)再向后滾動(dòng)(在年內(nèi))25天2016-01-02(星期六)(7)上機(jī)執(zhí)行下列程序(學(xué)習(xí)Runtime類),注意觀察程序的輸出結(jié)果。public class Test public static void main(String a

14、rgs) Runtime runtime=Runtime.getRuntime();long free=runtime.freeMemory();System.out.println("Java虛擬機(jī)可用空閑內(nèi)存"+free+"bytes");long total=runtime.totalMemory();System.out.println("Java虛擬機(jī)占用總內(nèi)存"+total+"bytes");long n1=System.currentTimeMillis();for(int i=1;i<=100

15、;i+)int j=2;for(;j<=i/2;j+)if(i%j=0)break;if(j>i/2 ) System.out.print(" "+i);long n2=System.currentTimeMillis();System.out.printf("n循環(huán)用時(shí):"+(n2-n1)+"毫秒n");free=runtime.freeMemory();System.out.println("Java虛擬機(jī)可用空閑內(nèi)存"+free+"bytes");total=runtime.t

16、otalMemory();System.out.println("Java虛擬機(jī)占用總內(nèi)存"+total+"bytes");結(jié)果:Java虛擬機(jī)可用空閑內(nèi)存15165544bytesJava虛擬機(jī)占用總內(nèi)存16252928bytes 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97循環(huán)用時(shí):0毫秒Java虛擬機(jī)可用空閑內(nèi)存14803416bytesJava虛擬機(jī)占用總內(nèi)存16252928bytes 4編程題 (1)字符串調(diào)用public String toUp

17、perCaseO方法返回一個(gè)字符串,該字符串把當(dāng)前字符串中的小寫字母變成大寫字母;字符串調(diào)用public String toLowerCaseO方法返回一個(gè)字符串,該字符串把當(dāng)前字符串中的大寫字母變成小寫字母。String類的public Stringconcat(String str)方法返回一個(gè)字符串,該字符串是把調(diào)用該方法的字符串與參數(shù)指定的字符串連接。編寫一個(gè)程序,練習(xí)使用這3個(gè)方法。 (2)String類的public char charAt(int index)方法可以得到當(dāng)前字符串index位置上的一個(gè)字符。編寫程序使用該方法得到一個(gè)字符串中的第一個(gè)和最后一個(gè)字符。 (3)計(jì)算某

18、年某月某日和某年某月某日之間的天數(shù)間隔。要求年、月、日使用main方法的參數(shù)傳遞到程序中(參看例子4)。 (4)編程練習(xí)Math類的常用方法。 (5)編寫程序剔除一個(gè)字符串中的全部非數(shù)字字符,例如,將形如“abl23you”的非數(shù)字字符全部剔除,得到字符串“123”(參看例子10)。 (6)使用Scanner類的實(shí)例解析字符串”數(shù)學(xué)87分,物理76分,英語96分”中的考試成績,并計(jì)算出總成績以及平均分?jǐn)?shù)(參看例子14)。編程題:(5)編寫程序剔除一個(gè)字符串中的全部非數(shù)字字符,例如,將形如“ab123you”的非數(shù)字字符全部剔除,得到字符串“123”(參考例子8_10).(6)使用Scanner

19、類的實(shí)例解析字符串“數(shù)學(xué)87分,物理76分,英語96分”中的考試成績,并計(jì)算出總成績以及平均分?jǐn)?shù)(參考例子8_14)習(xí) 題 91問答題(1)JFrame類的對(duì)象的默認(rèn)布局是什么布局?(2)一個(gè)容器對(duì)象是否可以使用add方法添加一個(gè)JFrame窗口?(3)JTextField可以觸發(fā)什么事件?(4)JTextArea中的文檔對(duì)象可以觸發(fā)什么類型的事件?(5)MouseListener接口中有幾個(gè)方法?(6)處理鼠標(biāo)拖動(dòng)觸發(fā)的MouseEvent事件需使用哪個(gè)接口?2選擇題(1)下列哪個(gè)敘述是不正確的? A一個(gè)應(yīng)用程序中最多只能有一個(gè)窗口。 BJFrame創(chuàng)建的窗口默認(rèn)是不可見的。 C不可以向JF

20、rame窗口中添加JFrame窗口。 D窗口可以調(diào)用setTitle(String s)方法設(shè)置窗口的標(biāo)題。(2)下列哪個(gè)敘述是不正確的? AJButton對(duì)象可以使用addActionListener(ActionListener l)方法將沒有實(shí)現(xiàn)ActionListener接口的類的實(shí)例注冊(cè)為自己的監(jiān)視器 B對(duì)于有監(jiān)視器的JTextField文本框,如果該文本框處于活動(dòng)狀態(tài)(有輸入焦點(diǎn))時(shí),用戶即使不輸入文本,只要按回車(Enter)鍵也可以觸發(fā)ActionEvent事件 C監(jiān)視KeyEvent事件的監(jiān)視器必須實(shí)現(xiàn)KeyListener接口D監(jiān)視WindowEvent事件的監(jiān)視器必須實(shí)現(xiàn)

21、WindowListener接口 (3)下列哪個(gè)敘述是不正確的? A使用FlowLayout布局的容器最多可以添加5個(gè)組件 B使用BorderLayout布局的容器被劃分成5個(gè)區(qū)域 CJPanel的默認(rèn)布局是FlowLayout布局 DJDialog的默認(rèn)布局是BorderLayout布局 3編程題 (1)編寫應(yīng)用程序,有一個(gè)標(biāo)題為“計(jì)算”的窗口,窗口的布局為FlowLayout布局。窗口中添加兩個(gè)文本區(qū),當(dāng)我們?cè)谝粋€(gè)文本區(qū)中輸入若干個(gè)數(shù)時(shí),另一個(gè)文本區(qū)同時(shí)對(duì)你輸入的數(shù)進(jìn)行求和運(yùn)算并求出平均值,也就是說隨著你輸入的變化,另一個(gè)文本區(qū)不斷地更新求和及平均值。 (2)編寫一個(gè)應(yīng)用程序,有一個(gè)標(biāo)題為

22、“計(jì)算”的窗口,窗口的布局為FlowLayout布局。設(shè)計(jì)四個(gè)按鈕,分別命名為“加”、“差”、“積、”、“除”,另外,窗口中還有三個(gè)文本框。單擊相應(yīng)的按鈕,將兩個(gè)文本框的數(shù)字做運(yùn)算,在第三個(gè)文本框中顯示結(jié)果。要求處理NumberFormatException異常。 (3)參照例子15編寫一個(gè)體現(xiàn)MVC結(jié)構(gòu)的GUI程序。首先編寫一個(gè)封裝梯形類,然后再編寫一個(gè)窗口。要求窗口使用三個(gè)文本框和一個(gè)文本區(qū)為梯形對(duì)象中的數(shù)據(jù)提供視圖,其中三個(gè)文本框用來顯示和更新梯形對(duì)象的上底、下底和高,文本區(qū)對(duì)象用來顯示梯形的面積。窗口中有一個(gè)按鈕,用戶單擊該按鈕后,程序用3個(gè)文本框中的數(shù)據(jù)分別作為梯形對(duì)象的上底、下底和

23、高,并將計(jì)算出的梯形的面積顯示在文本區(qū)中。習(xí) 題 10 1問答題 (1)如果準(zhǔn)備按字節(jié)讀取一個(gè)文件的內(nèi)容,應(yīng)當(dāng)使用FilelnputStream流還是FileReader流? (2)FilelnputStream流的read方法和FileReader流的read方法有何不同? (3)BufferedReader流能直接指向一個(gè)文件嗎? (4)使用ObjectlnputStream和ObjectOutputStream類有哪些注意事項(xiàng)? (5)怎樣使用輸入、輸出流克隆對(duì)象? 2選擇題 (1)下列哪個(gè)敘述是正確的? A創(chuàng)建File對(duì)象可能發(fā)生異常。 BBufferedRead流可以指向FileIn

24、putStream流。 CBufferedWrite流可以指向FileWrite流。 DRandomAccessFile流一旦指向文件,就會(huì)刷新該文件。 (2)為了向文件hello.txt尾加數(shù)據(jù),下列哪個(gè)是正確創(chuàng)建指向hello.txt的流?Atry OutputStream out=new FileOutputStream (“helloTxt”); catch(IOException e)Btry OutputStream out=new FileOutputStream (”hellotxt”,true); ) catch(IOException e)(Ctry OutputStrea

25、m out=new FileOutputstream(”hellotxt”,false); catch(IOException e)Dtry OutputStream out=new OutputStream (”heliotxt”,true);) catch(IOException e) 3閱讀程序(1) 文件E.java的長度是51個(gè)字節(jié),請(qǐng)說出E類中標(biāo)注的【代碼l】和【代碼2】的輸出結(jié)果。import java.io.*;public class Epublic static void main(String args)File f=new File("E.java"

26、);try RandomAccessFile in=new RandomAccessFile(f,"rw");System.out.println(f.length(); /【代碼1】 FileOutputStream out=new FileOutputStream(f);System.out.println(f.length(); /【代碼2】catch(IOException e) System.out.println("File read Error"+e);(2) 請(qǐng)說出E類中標(biāo)注的【代碼1】【代碼4】的輸出結(jié)果。import java.io.

27、*;public class Epublic static void main(String args)int n=-1;File f=new File("hello.txt");byte a="abcd".getBytes();tryFileOutputStream out=new FileOutputStream(f);out.write(a);out.close();FileInputStream in=new FileInputStream(f);bytetom=new byte3;int m=in.read(tom,0,3);System.ou

28、t.println(m);/【代碼l】String s=new String(tom,0,3);System.out.println(s);/【代碼2】m=in.read(tom,0,3);System.out.println(m);/【代碼3】s=new String(tom,0,3);System.out.println(s);/【代碼4】catch(IOException e) 結(jié)果:3abc1dbc(3)了解打印流。我們已經(jīng)學(xué)習(xí)了數(shù)據(jù)流,其特點(diǎn)是用Java的數(shù)據(jù)類型讀寫文件,但使用數(shù)據(jù)流寫成的文件用其他文件閱讀器無法進(jìn)行閱讀(看上去是亂碼)。PrintStream類提供了一個(gè)過濾輸出流

29、,該輸出流能以文本格式顯示Java的數(shù)據(jù)類型。上機(jī)執(zhí)行下列程序。import java.io.*;public class Epublic static void main(String args)tryFile file=new File("P.txt");FileOutputStream out=new FileOutputStream(file);PrintStream ps=new PrintStream(out);ps.print(12345.6789);ps.println("how are you");ps.println(true);ps

30、.close();catch(IOException e)4編寫程序 (1)使用RandomAccessFile流將一個(gè)文本文件倒置讀出。 (2)使用Java的輸入、輸出流將一個(gè)文本文件的內(nèi)容按行讀出,每讀出一行就順序添加行號(hào),并寫入到另一個(gè)文件中。 (3)參考例子16,解析一個(gè)文件中的價(jià)格數(shù)據(jù),并計(jì)算平均價(jià)格,該文件的內(nèi)容如下。 商品列表: 電視機(jī),2567元/臺(tái) 洗衣機(jī),3562元/臺(tái) 冰箱,6573元/臺(tái)習(xí) 題 11 1問答題 (1)設(shè)置數(shù)據(jù)源的主要步驟有哪些? (2)如果采用JDBCODBC方式連接數(shù)據(jù)庫,程序代碼中是否必須要使用數(shù)據(jù)庫的名字才能和數(shù)據(jù)庫建立連接。 (3)預(yù)處理語句的好

31、處是什么? (4)什么叫事務(wù),事務(wù)處理步驟是怎樣的? 2編程題 (1)參照例子2,編寫一個(gè)應(yīng)用程序來查詢Access數(shù)據(jù)庫,用戶可以從鍵盤輸入數(shù)據(jù)源名、表名。 (2)參照例子4,按商品名稱進(jìn)行模糊查詢(用戶從鍵盤輸入商品名稱)。(3)參照例子5,按生產(chǎn)日期排序goods表的記錄。習(xí) 題 12 1問答題 (1)線程有幾種狀態(tài)? (2)引起線程中斷的常見原因是什么? (3)一個(gè)線程執(zhí)行完run方法后,進(jìn)入了什么狀態(tài)?該線程還能再調(diào)用start方法嗎? (4)線程在什么狀態(tài)時(shí)調(diào)用isAlive0方法返回的值是false? (5)建立線程有幾種方法? (6)怎樣設(shè)置線程的優(yōu)先級(jí)? (7)在多線程中,為

32、什么要引入同步機(jī)制? (8)在什么方法中wait0方法、notify0及notifyAll0方法可以被使用? (9)將例子6中SellTicket類中的循環(huán)條件while(fiveAmount<3)改寫成if(fiveAmount<3)是否合理? (10)線程調(diào)用interrupt0的作用是什么? 2選擇題 (1)下列哪個(gè)敘述是錯(cuò)誤的? A線程新建后,不調(diào)用start方法也有機(jī)會(huì)獲得CPU資源。 B如果兩個(gè)線程需要調(diào)用同一個(gè)同步方法,那么一個(gè)線程調(diào)用該同步方法時(shí),另一個(gè)線程必須等待。 C目標(biāo)對(duì)象中的run方法可能不啟動(dòng)多次。 D默認(rèn)情況下,所有線程的優(yōu)先級(jí)都是5級(jí)。 (2)對(duì)于下列

33、程序,哪個(gè)敘述是正確的?public class Epublic static void main(String args)Target target=new Target();Thread thread=new Thread(target);thread.start();class Target implements Runnablepublic void run()System.out.println("0k"); AJVM認(rèn)為這個(gè)應(yīng)用程序共有兩個(gè)線程。 BJVM認(rèn)為這個(gè)應(yīng)用程序只有一個(gè)主線程。 CJVM認(rèn)為這個(gè)應(yīng)用程序只有一個(gè)thread線程。 Dthread的優(yōu)先級(jí)

34、是10級(jí)。(3)對(duì)于下列程序,哪個(gè)敘述是正確的?public class Epublic static void main(String args)Target target=new Target();Thread thread=new Thread(target);target.run();class Target implements Runnablepublic void run()System.out.println("0k"); AJVM認(rèn)為這個(gè)應(yīng)用程序共有兩個(gè)線程。 BJVM認(rèn)為這個(gè)應(yīng)用程序只有一個(gè)主線程。 CJVM認(rèn)為這個(gè)應(yīng)用程序只有一個(gè)thread線程。 D

35、程序有編譯錯(cuò)誤,無法運(yùn)行。 3閱讀程序 (1)上機(jī)運(yùn)行下列程序,注意程序的運(yùn)行效果(程序有兩個(gè)線程:主線程和thread線程)。public class E public static void main(String args)Target target=new Target();Thread thread=new Thread(target);thread.start();for(int i=0;i<=10;i+) System.out.println("yes");tryThread.sleep(1000);catch(InterruptedException

36、exp)class Target implements Runnablepublic void run()for(int i=0;i<=10;i+) System.out.println("ok");tryThread.sleep(1000);catch(InterruptedException exp) 結(jié)果:yesokyesokyesokyesokyesokyesokyesokokyesokyesyesokokyes2)上機(jī)運(yùn)行下列程序,注意程序的運(yùn)行效果(注意該程序中只有一個(gè)主線程,thread線程并沒有啟動(dòng))。public class Epublic stat

37、ic void main(String args)Target target=new Target();Thread thread=new Thread(target);target.run();for(int i=0;i<=10;i+)System.out.println("yes");tryThread.sleep(1000);catch(InterruptedException exp)class Target implements Runnablepublic void run()for(int i=0;i<=10;i+)System.out.print

38、ln("ok");tryThread.sleep(1000);catch(InterruptedException exp) (結(jié)果:okokokokokokokokokokokyesyesyesyesyesyesyesyesyesyesyes3)上機(jī)運(yùn)行下列程序,注意程序的運(yùn)行效果(注意程序的輸出結(jié)果)。public class Epublic static void main(String args)Target target=new Target();Thread threadl=new Thread(target);Thread thread2=new Thread

39、(target);threadl.start();tryThread.sleep(1000);catch(Exception exp)thread2.start();class Target implements Runnableint i=0;public void run()i+;System.out.println("i="+i);結(jié)果:i=1i=2(3) 上機(jī)運(yùn)行下列程序,注意程序的運(yùn)行效果(注意和上面習(xí)題(3)的不同之處)。public class E public static void main(String args)Target targetl=new T

40、arget();Target target2=new Target();Thread threadl=new Thread(targetl);/與thread2的目標(biāo)對(duì)象不同Thread thread2=new Thread(target2);/與threadl的目標(biāo)對(duì)象不同threadl.start();tryThread.sleep(1000);catch(Exception exp)thread2.start();class Target implements Runnableint i=0;public void run()i+;System.out.println("i=&

41、quot;+i);結(jié)果:i=1i=1(4) 上機(jī)運(yùn)行下列程序,注意程序的運(yùn)行效果(計(jì)時(shí)器啟動(dòng)成功)。import javax.swing.*;import java.util.Date;public class Epublic static void main(String args)javax.swing.Timer time=new javax.swing.Timer(500, new A();time.setInitialDelay(0);time.start();class A extends JLabel implements java.awt.event.ActionListene

42、rpublic void actionPerformed(java.awt.event.ActionEvent e)System.out.println(new Date();結(jié)果:Wed Dec 14 19:47:44 CST 2016Wed Dec 14 19:47:44 CST 2016Wed Dec 14 19:47:45 CST 2016Wed Dec 14 19:47:45 CST 2016Wed Dec 14 19:47:46 CST 2016Wed Dec 14 19:47:46 CST 2016Wed Dec 14 19:47:47 CST 2016Wed Dec 14 19

43、:47:47 CST 2016Wed Dec 14 19:47:48 CST 2016Wed Dec 14 19:47:48 CST 2016Wed Dec 14 19:47:49 CST 2016(5) 上機(jī)運(yùn)行下列程序,注意程序的運(yùn)行效果(計(jì)時(shí)器啟動(dòng)失敗)。import javax.swing.*;import java.util.Date;public class Epublic static void main(String args)javax.swing.Timer time=new javax.swing.Timer(500, new A();time.setInitialDel

44、ay(0);time.start();class A implements java.awt.event.ActionListenerpublic void actionPerformed(java.awt.event.ActionEvent e)System.out.println(new Date();結(jié)果:無結(jié)果(6) 在下列E類中【代碼】輸出結(jié)果是什么?import java.awt.*;import java.awt.event.*;public class E implements RunnableStringBuffer buffer=new StringBuffer();Thr

45、ead t1,t2;E()t1=new Thread(this);t2=new Thread(this);public synchronized void addChar(char c)if(Thread.currentThread()=t1) while(buffer.length()=0)trywait();catch(Exception e)buffer.append(c);if(Thread.currentThread()=t2) buffer.append(c);notifyAll();/main(String args)的args的參數(shù)名隨意,之所以大家都用args只是一種約定俗成

46、的規(guī)則,并沒有強(qiáng)制規(guī)定public static void main(String s)E hello=new E();hello.t1.start();hello.t2.start();while(hello.t1.isAlive()| hello.t2.isAlive()System.out.println(hello.buffer);/【代碼】public void run()if(Thread.currentThread()=t1)addChar('A');if(Thread.currentThread()=t2)addChar('B');結(jié)果:BA(8

47、)上機(jī)執(zhí)行下列程序,了解同步塊的作用。public class E public static void main(String args)Bank b=new Bank();b.threadl.start();b.thread2.start();class Bank implements RunnableThread threadl,thread2;Bank()threadl=new Thread(this);thread2=new Thread(this);public void run()printMess();public void printMess()System.out.prin

48、tln(Thread.currentThread().getName()+"正在使用這個(gè)方法");synchronized(this) /當(dāng)一個(gè)線程使用同步塊時(shí),其他線程必須等待tryThread.sleep(2000);catch(Exception exp)System.out.println(Thread.currentThread().getName()+"正在使用這個(gè)同步塊");結(jié)果:Thread-1正在使用這個(gè)方法Thread-0正在使用這個(gè)方法Thread-1正在使用這個(gè)同步塊Thread-0正在使用這個(gè)同步塊 4編程題 (1)參照例子8,

49、模擬三個(gè)人排隊(duì)買票,張某、李某和趙某買電影票,售票員只有三張5元的錢,電影票5元錢一張,張某拿一張20元的人民幣排在李某的前面買票,李某排在趙某的前面拿一張10元的人民幣買票,趙某拿一張5元的人民幣買票。(2)參照例子6,要求有3個(gè)線程:studentl、student2和teacher,其中studentl準(zhǔn)備睡10分鐘后再開始上課,其中student2準(zhǔn)備睡1小時(shí)后再開始上課。teacher在輸出3句“上課”后,吵醒休眠的線程studentl,student1被吵醒后,負(fù)責(zé)再吵醒休眠的線程student2。(3)參照例子9,編寫一個(gè)Java應(yīng)用程序,在主線程中再創(chuàng)建3個(gè)線程:“運(yùn)貨司機(jī)”、

50、“裝運(yùn)工”和“倉庫管理員”。要求線程“運(yùn)貨司機(jī)”占有CPU資源后立刻聯(lián)合線程“裝運(yùn)工”,也就是讓“運(yùn)貨司機(jī)”一直等到“裝運(yùn)工”完成工作才能開車,而“裝運(yùn)工”占有CPU資源后立刻聯(lián)合線程“倉庫管理員”, 也就是讓“裝運(yùn)工”一直等到“倉庫管理員”打開倉庫才能開始搬運(yùn)貨物。習(xí) 題 13 1問答題 (1)一個(gè)URL對(duì)象通常包含哪些信息? (2)URL對(duì)象調(diào)用哪個(gè)方法可以返回一個(gè)指向該URL對(duì)象所包含的資源的輸入流? (3)客戶端的Socket對(duì)象和服務(wù)器端的Socket對(duì)象是怎樣通信的? (4)ServerSocket對(duì)象調(diào)用accept方法返回一個(gè)什么類型的對(duì)象? (5)InetAddress對(duì)象使用怎樣的格

溫馨提示

  • 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)論