JAVA大學實用教程第三版課后習題答案_第1頁
JAVA大學實用教程第三版課后習題答案_第2頁
JAVA大學實用教程第三版課后習題答案_第3頁
JAVA大學實用教程第三版課后習題答案_第4頁
JAVA大學實用教程第三版課后習題答案_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

JAVA大學實用教程(第三版)課后習題答案第一章Java語言概述.“java編譯器將源文件編譯為的字節(jié)碼文件是機器碼”這句話正確?答:不正確java應用程序的主類必須含有怎樣的方法?答:含有main方法?!癹ava應用程序必須有一個類是public類”這句話正確嗎?答;不正確,只能有一個public類?!癹avaApplet程序的主類必須是public類”這句話正確嗎?答:正確,因為javaApplet主類必須是Applet類的子類并且是public的類。請敘述java源程序的命名規(guī)則。答:與public的類同名。。源文件生成的字節(jié)碼文件在運行時都加載到內存中嗎?答:非也,動態(tài)隨需要運行才加載。面向對象的程序設計語言有那些基本特征?答:封裝;繼承;多態(tài)性。在Java程序中有多個類文件時,用Java命令應該運行那個類?答:具有main方法的類第二章基本數(shù)據(jù)類型和數(shù)組。下列哪些語句是錯的?Intx120;Byteb120;bx;答:Bx;錯應為b(byte)x。下列哪些語句是錯的?答:yd;錯,應y(float)d。下列兩個語句是等價的嗎?Charx97;Charx‘a';答:是等價的。。下列//.ntf語句輸出結果是什么?Inta97;Byteb1byte128;Byteb2byte-129;//.ntf“%c,%d,%d”,a,b1,b2;如果輸出語句改為://.ntf“%d,%d,%”d,a,b1,b2;輸出什么?答:輸出a,-128,127修改后輸出97,-128,127數(shù)組是基本數(shù)據(jù)類型嗎?怎樣獲取數(shù)組的長度?答:不是基本數(shù)據(jù)類型,是復合數(shù)據(jù)類型??梢酝ㄟ^:數(shù)組名.length的方法獲得數(shù)組長度。假設有兩個int類型數(shù)組:Int[]anewint[10];Int[]bnewint[8];ba;A[0]100;B[0]的值一定是100嗎?答;一定,因為a數(shù)組與b數(shù)組引用相同。。下列兩個語句的作用等價嗎?Int[]a1,2,3,4,5,6,7,8;Int[]anewint[8];答:不等價,前者有初值,后者指分配空間。初值數(shù)組元素為0.有語句:int[]a1,2,3,b4,5;ab;求a[0]b[1]?為什么?答:a[0]4;b[1]5因為有相同的引用,同指向b[].Java語言使用編碼_,每個字符占字節(jié)_byte位Unicode216運算符、表達式與語句1。下列語句輸出的結果是什么?Inta100,x,y;X++a;Ya--//.ntf“%d,%d,%d”,x,y,a;答:101,101,1002。下列語句那些有錯誤?Intx0;X5.0/2;Floaty12.5F;y5.0/2;答:x5.0/2;錯。。下列語句那些有錯?Bytex32;Charc‘a';Intnc-x;cc-x;答:cc-x;錯應為int類型。下列語句正確的是A.表達式“12+5634’的值是true表達式“12+56||34”是非法表達式表達式“x+y12”是非法表達式D.表達式“12+5634’的值是13答:(A,C)。對于整數(shù)m,ml的結果一定是2m答:不一定,高位有損失時,不是2m對于兩個int整形變量Intm120,n240;那么mAm?;mAn5?答:mAm0;mA門八門120

下列〃.ntf語句輸出的結果是什么?Intx10,y10,z10;Ifx9y100;Z200;Elsey-100;z-200;//.ntf“%d,%d,%”d,x,y,z;輸出:10,100,-200下列for語句輸出結果是什么?Forinti1;i4;i++SwitchiTOC\o"1-5"\h\z//.ntf“%c”,'a';//.ntf“%c”,'b';Break;//.ntf“%c”,'c';//.ntf“%c”,'d';Break;輸出:a,b,b,c,d,d下列〃.ntf語句輸出的結果是什么?Chara[]aChara[]a','b','c','d','e';Fori0;ia.length/2;i++charca[i];a[i]a[a.length-i+1];a[a.length-i+1]c;//.ntf“%c%c%c%c”%ac[0],a[1],a[2],a[3],a[4];輸出:e,d,c,b,a下列〃.ntf語句輸出的結果是什么?inta[]3,4,1,2,-6;forinti0;ia.lemgth;i++forintji+1;ja.length;j++ifa[j]a[i]Intna[j];a[j]a[i];a[i]n;//.ntf“%d,%d,%d,%d,%”d,a[0],a[1],a[2],a[3],a[4];輸出:-6,1,2,3,4publicclassTickpublicstaticvoidmainStringargs[]inta[]3,4,1,2,-6;forinti0;ia.length;i++forintji+1;ja.length;j++ifa[j]a[i]intna[j];a[j]a[i];a[i]n;//.ntf"%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4];第四章類與對象在聲明類時,類名應遵循哪些習慣?答:首字母大寫,望名知意類體內容有哪兩種重要成員?答:成員變量,和成員方法。3。實例方法可以操作類變量嗎?類方法可以操作實例變量嗎?答:實例方法可以操作類變量。而類方法不可以操作實例變量。當類的字節(jié)碼加載到內存時,類變量就一定分配了內存空間嗎?答:實例成員變量不分配內存,而類變量一定分配內存。類的實例變量在什么時候分配內存?答:聲明之后,在用new關鍵字創(chuàng)建實例的時候才分配內存。一個類的類變量被該類創(chuàng)建的所有對象共享嗎?答:共享不同對象的實例變量分配的內存地址一定不同嗎?答:當出現(xiàn)引用賦值語句時兩個實例變量的內存地址相同。什么叫方法的重載?構造方法可以重載嗎?答:方法的重載是指一個類中可以有多個方法具有相同的名字,但這些方法的參數(shù)不同,或者參數(shù)的個數(shù)不同,或者參數(shù)的類型不同。構造方法可以重載。請闡述為什么類方法不能調用實例方法?答:對于類方法在該類加到內存時就分配了相應的入口地址,所以即使該類未創(chuàng)建對象,也可以通過類名調用類方法。而這時在類對象創(chuàng)建之前,實例方法還沒有入口地址。還不知道一個方法從何處開始執(zhí)行,當然不能調用。請闡述,為什么類方法中不能操作實例成員變量?答:對于類方法在該類加到內存時就分配了相應的入口地址,所以即使該類未創(chuàng)建對象,也可以通過類名調用類方法。而這時在類創(chuàng)建之前,實例成員變量還沒有分配內存空間。沒內存空間當然無法操作。實例方法可以用類名直接調用嗎?答:不能,因為實例方法,用new創(chuàng)佳對象后才分配入口地址,而類名,一經聲明就分配類名地址。而這時對象創(chuàng)建之前實例方法還沒有入口地址。實例方法表現(xiàn)實例的功能,或改變實例變量。用類調用改變那個實例的實例變量,表現(xiàn)那個實例的功能,不明確。關鍵字this可以出現(xiàn)在構造方法中嗎?可以出現(xiàn)在實例方法中嗎?可以出現(xiàn)在類方法中嗎?答:可以出現(xiàn)在構造方法中,代表該類構造方法所創(chuàng)造出的對象。可以出現(xiàn)在實例方法中,代表使用該方法的當前對象。This不能出現(xiàn)在類方法中,因為類方法是通過類名調用的。源文件聲明編寫的類一定在同一個包中嗎?答:不一定,當不在同一包中時,可用import語句將其所在的包引入該源文件中?!癷mportjava.awt.*”與“import//.ton”有什么不同?答:前者引入了awt包中的所有類,后者只引入了Button一個類程序中使用了“importjava.util.*;”程序運行時,是要加載java.util包中的全部類到內存嗎?答:不,只加載本程序用到的類到內存中,因為java程序是動態(tài)加載,字節(jié)碼類文件。有哪幾種訪問權限修飾符?說出一種的作用。答:訪問權限修飾符有public,private,protected.Private作用是只允許本類的對象訪問。怎樣反編譯一個類?答:使用SDK提供的反編譯器javap.exe文件可以實現(xiàn)將字節(jié)碼文件反編譯為源碼文件??刹榭丛创a中public方法和public成員變量的名字。如加入?yún)?shù)-private則可列出其全部的成員方法和成員變量。如:Javap?private//.ton則可以列出Button類中全部的方法和成員變量。下面程序中那個語句是錯的?classAprivatefloatweight;//weight被修飾為private的float型變量。publicfloatffloata,floatb//方法f是public方法。returna;publicclassBvoidgAanewA;a.weight23f;a.f3,4;答:a.weight23f;錯編寫一個類,該類創(chuàng)建的對象可以計算等差數(shù)列的和。解:classDengChaintstart,d;DengChaDengChaintstart,intdthis.startstart;this.dd;voidsetStartintsstarts;voidsetDintdthis.dd;intgetSumintnintsum0,i1;whileinsumsum+start;startstart+d;i++;returnsum;publicclassZuoYe04_1publicstaticvoidmainStringargs[]DengChashulienewDengCha2,3;//.ntlnshulie.getSum100;shulie.setStart10;shulie.setD5;//.ntlnshulie.getSum9;DengChaarithmeticalnewDengCha;ScannerReadernewScannerSystem.in;TOC\o"1-5"\h\z\o"CurrentDocument"http://.ntln"請輸入等差數(shù)列開始值";//.tInt;//.ntln"請輸入等差數(shù)列的差值";//.tInt;//.ntln"請輸入等差數(shù)列求和的個數(shù)";intnReader.nextInt;//.ntlnn+"個數(shù)的和是"+arithmetical.getSumn;編寫一個類,該類封裝了一元二次方程的屬性和功能,即該類有刻畫方程系數(shù)的3個成員變量和求根的方法。要求:該類所有對象共享常數(shù)項classSquareEquationdoublea,b;staticdoublec;doubleroot1,root2;booleanboo;publicSquareEquationdoublea,doubleb,doublecthis.aa;this.bb;SquareEquation.cc;ifa!0bootrue;elseboofalse;publicvoidgetRootsifboo//.ntln"是一元2次方程";doublediskb*b-4*a*c;ifdisk0root1-b+Math.sqrtdisk/2*a;root2-b-Math.sqrtdisk/2*a;//.ntf"方程的根:%f,%f\n",root1,root2;else//.ntf"方程沒有實根\n";else//.ntln"不是一元2次方程";publicvoidsetCoefficientdoublea,doubleb,doublecthis.aa;this.bb;SquareEquation.cc;ifa!0bootrue;elseboofalse;publicclassZuoYe4_3publicstaticvoidmainStringargs[]SquareEquationequation1newSquareEquation4,5,1;SquareEquationequation2newSquareEquation3,5,-7;equation1.getRoots;equation2.getRoots;程序源文件Example.java如果使用了包語句,例如:packagetom.jiafei;并且有c:\1000\tom\jiafei的目錄結構,并且將源文件編譯后得到的全部字節(jié)碼文件拷貝到目錄c:\1000\tom\jiafei中。問在哪個目錄中運行此文件,運行命令是什么?答:運行程序時必須到tom\jiafei的上一層目錄1000中來運行,如:c:\1000\javatom.jiafei.Example第五章繼承、接口與泛型。子類在什么情況下可以繼承父類的友好成員?答:父子類在同一包中時子類可以繼承父類的友好成員。子類通過什么辦法,可以隱藏繼承的成員變量。答:子類成員變量與父類成員變量同名。。子類重寫繼承方法的規(guī)則是什么?答:重寫隱藏父類的方法需:返回的數(shù)據(jù)類型相同,參數(shù)的個數(shù)相同,并且類型相同。如果重寫父類的方法后參數(shù)的個數(shù)或類型不同會出現(xiàn)子類方法的重載。子類的構造方法的第一條語句是什么?答:如果需要調用父類構造方法,則應是用super關鍵詞調用父類的構造方法。。子類一旦重寫了繼承的方法,就會隱藏繼承的方法。是這樣嗎?答:不一定。在參數(shù)的個數(shù)或類型不同時會產生重載。如果只有返回值的類型不同,將會產生編譯錯誤。子類隱藏父類的方法,參數(shù)必須相同并且相_.答:個數(shù),類型。子類重寫繼承方法時,可以降低方法的權限嗎?答:重寫繼承方法時不能降低訪問權限。。簡述關鍵字super的用法。答:1)子類調用父類的構造方法。子類對象引用被隱藏了的父類方法,或成員變量。.假設父類有一個方法:Publicdoublefdoublex,doubleyreturnx+y;是否允許子類再聲明如下的方法:Publicfloatfdoublex,doubleyreturn23;答:不允許。。父類的final方法可以被子類重寫嗎?答:不可以。什么類中可以有abstract方法?答:被abstract修飾的類。接口中也可以有abstract方法。什么叫做對象的上轉型對象?答:用子類的構造方法構造出來的對象,賦值給父類對象。。什么叫接口回調?答:用實現(xiàn)接口的類創(chuàng)建的對象,賦值給該接口聲明的接口變量。。與類有關的匿名類一定是該類的子類嗎?與接口有關的匿名類一定是實現(xiàn)該接口的一個類嗎?答:一定,因為類創(chuàng)建對象時,除了構造方法還有類體,此類體被認為是該類的一個子類去掉類聲明后的類體。即匿名類,匿名類就是一個子類。與接口的匿名類相同。一定是子類。。怎樣聲明一個泛型類?答:我們可以這樣聲明一個泛型類:classA其中A時泛型的名稱,E是其中的泛型,即我們沒有指定E是何種類型的數(shù)據(jù),它可以是任何對象或接口,但不能是基本數(shù)據(jù)類型。閱讀下列程序,并說明輸出結果。classNegativeIntegerExceptionextendsExceptionStringmessage;publicNegativeIntegerExceptionmessage"方法的參數(shù)值不是正整數(shù)";publicStringtoStringreturnmessage;classCommonDivisorpublicintgetCommonDivisorinta,intbthrowsNegativeIntegerExceptionifa0||b0thrownewNegativeIntegerException;intr0;ifabintta;ab;bt;ra%b;whiler!0ab;br;ra%b;returnb;classMinCommonMultipleextendsCommonDivisorpublicintgetMinCommonMultipleinta,intbthrowsNegativeIntegerExceptionifa0||b0thrownewNegativeIntegerException;inty0;intxgetCommonDivisora,b;ya*b/x;returny;publicclassExamplepublicstaticvoidmainStringarg[]intCommonDivisor,minCommonMultiple;CommonDivisornewCommonDivisor;MinCommonMultipleminnewMinCommonMultiple;tryCommonDivisor.getCommonDivisor18,12;//.ntln"最大公約數(shù):"+CommonDivisor;minCommonMultiplemin.getMinCommonMultiple18,12;//.ntln"最小公倍數(shù):"+minCommonMultiple;CommonDivisor.getCommonDivisor-64,48;//.ntln"最大公約數(shù):"+CommonDivisor;catchNegativeIntegerExceptione//.ntlne.toString;3。編寫一個類要求實現(xiàn)一個接口,該接口有3個abstract方法:Publicabstractvoidfintx;Publicabstractvoidgintx,inty;Publicabstractdoublehdoublex;并使用接口回調調要求在應用程序主類中使用該類創(chuàng)建對象用,并使用接口回調調方法f,g和h.解:interfaceApublicabstractvoidfintx;publicabstractvoidgintx,inty;publicabstractdoublehdoublex;classA1implementsApublicvoidfintx//.ntlnx;publicvoidgintx,intyintzx+y;//.ntlnz;returnx*x;classA2implementsApublicvoidfintx//.ntln"Hello:"+x;publicvoidgintx,intyintzx-y;//.ntlnz;publicdoublehdoublexreturnMath.sqrtx;classA3implementsApublicvoidfintx//.ntln"你好:"+x;publicvoidgintx,intydoublezdoublex/y;//.ntlnz;return1/x;publicclassZuoYe5_3publicstaticvoidmainStringargs口AanewA1;a.f10;a.g12,20;//.ntlna.h100;anewA2;a.f10;a.g12,20;//.ntlna.h100;anewA3;a.f10;a.g12,20;、/、/■利用面向接口編程的方法,編寫計算錐形體積的完整程序錐形的底可以為圓形,矩形,或梯形等。(對細節(jié)滿足開閉原則。4求下列程序運行結果classApublicdoubley11.456789;publicvoidfyy+1;//.ntf"y是double型的變量,y%f\n",y;classBextendsAinty0;publicvoidgyy+100;//.ntf"y是int型的變量,y%d\n",y;classExample5_3publicstaticvoidmainStringargs[]BbnewB;b.y200;b.g;//調用子類新增的方法b.f;//調用子類繼承的方法5.求下列程序運行結果classAintm0,n0;longfreturnm+n;classBextendsAintm1,n1;longflongresult0;super.m10;super.n20;resultsuper.f+m+n;returnresult;longglongresult0;resultsuper.f;returnresult/2;publicclassExample5_7publicstaticvoidmainStringargs[]BbnewB;b.m3;b.n7;longresultOneb.g;longresultTwob.f;longresultThreeb.g;//.ntln"resultOne"+resultOne;//.ntln"resultTwo"+resultTwo;//.ntln"resultThree"+resultThree;即所謂的開閉原則,對關閉,對開放。__答:修改,擴展編寫一個面向抽象的完整程序,求柱形體積,計算方法底*高,但底面積的算法經常要變化。于是對于求底面積可以設一個抽象類Geometry。柱形面對具有抽象類的Geometry設計。最后完成對圓形底面積的柱形,和梯形底面積的柱形計算體積(8)求下列程序的運行結果。interfaceShowvoidshow;classAimplementsShowpublicvoid//.ntln"IloveThisGame";classBimplementsShowpublicvoid//.ntln"我喜歡看NBA";classCpublicvoidfShows//接口作為參數(shù)s.show;publicclassExample5_13publicstaticvoidmainStringargs[]CcnewC;c.fnewA;c.fnewB;答:IloveThisGame我喜歡看NBA9寫出下面程序的運行結果:publicclassExample5_18publicstaticvoidmainStringargs[]intn0,m0,t0;tryt9999;mInteger.parseInt"8888";nInteger.parseInt"12s3a";//發(fā)生異常,轉向catch//.ntln"我沒有機會輸出";catchExceptione//.ntln"發(fā)生異常";n123;//.ntln"n"+n+",m"+m+",t"+t;答:發(fā)生異常n123,m8888,t9999第六章字符串和正則表達式。對于字符串StringS1newString“OK”;StringS2newString“OK”;說出下列表達式的值:S1S2S1.equalsS2答:(1)false2true.對于字符串Strings1newString“Iloveyouzhht”;Strings2s1.replaceAll“l(fā)ove”,”hate”;說出〃.ntf“%s,%s”,s1,s2的結果。結果:Iloveyouzhht,IhateyouzhhtString類和StringBuffer類有何不同?答:String類創(chuàng)建的字符串對象存儲空間是不能修改的。而使用StringBuffer類創(chuàng)建的對象是可以修改其字符串序列,即該類的對象的實體內存空間是可以改變的,便于存放可變字符串。。對于StringBuffer串StringBufferstrnewStringBuffer“abcdefg”;strstr.delete2,4;說出//.ntlnstr的結果。答:abefg4為需要刪除的下一個字符的下標.StringTokenizer類的主要用途是什么?該類有哪幾個重要的方法?答:當我們分析一個字符串并將字符串分解成可被獨立使用的單詞時,可以使用java.util包中的StringTokenizer類.可以使用nextToken方法逐個獲取字符串分析器中的語言符號(單詞)每當獲取到一個語言符號,字符串分析器中的負責計數(shù)的變量的值就自動減一,該計數(shù)變量的初始值等于字符串中的單詞數(shù)目.字符串分析器調用countTokens方法可以得到計數(shù)變量的值。字符串分析器通常用while循環(huán)來逐個獲取語言符號,為了控制循環(huán),我們可以使用StringTokenizer類中的hasMoreTokens方法,只要計數(shù)的變量的值大于0,該方法就返回true,否則返回false。。下列//.ntf語句的輸出結果是什么?StringsnewString“we,go,to,school”;StringTokenizertokennewStringTokenizerS,”,”;Stringwordtoken.nextToken;Intntoken.countTokens;//.ntf“%s,%d”,word,n;答:We,3。請說出Matcher對象的find方法和lookingAt方法有什么不同?答:publicbooleanfind:尋找input和pattern匹配的下一子序列publicbooleanlookingAt:判斷從input的開始位置是否有和pattern匹配的子序列。。正則表達式中的元字符[123]代表什么意思?答:代表1,2,3中的任何一個9。說出與模式“A[125]2”匹配的4個字符串。答:A12,A25,A15,A52。下列哪些字符串匹配模式“boy\\w3”boy111B.boy!@#C.BoyweoD.Boyboybpy答:C。boyweoA.boy111.有模式pattern“A[1359]?”求和模式pattern相匹配的全部字符串?答:“A”,“A1”,“A3”,“A5”,“A9”一個正則表達式是含有一些具有的字符串_,這些特殊字符稱作正則表達式中的答:特殊意義字符,元字符第七章常用實用類怎樣實例化一個Calendar對象?答:Calendar類在java.util包中。使用Calendar類的static方法getInstance可以初始化一個日歷對象,如:CalendarcalendarCalendar.getInstance;Calendar對象調用set1949,9,1設置的年月日分別是多少?答:1949年10月1日怎樣得到一個1--100之間的隨機數(shù)?答:intrandomNumberintMath.random*100+1BigInteger類的常用構造方法是什么?答:可以使用構造方法:publicBigIntegerStringval兩個BigInteger類對象怎樣進行加法運算?答:BigIntegern1newBigInteger"大整數(shù)字符串",n2newBigInteger"大整數(shù)字符串",resultnull;resultn1.addn2;LinkedList泛型類是一種什么數(shù)據(jù)結構?答:是一種鏈表類數(shù)據(jù)結構。對于需要經常查找的數(shù)據(jù),應選用LinkedList還是選用HashMapK,V?答:選用HashMapK,V第八章線程線程和進程是什么關系?答:線程是比進程更小的執(zhí)行單位。一個進程在其執(zhí)行過程中,可以產生多個線程,形成多條執(zhí)行線索,每條線索,即每個線程也有它自身的產生、存在和消亡的過程,也是一個動態(tài)的概念。線程有幾種狀態(tài)?答:新建狀態(tài),運行狀態(tài),中斷狀態(tài),死亡狀態(tài)引起線程中斷的常見原因是什么?答:有4種:有4種原因的中斷:JVM將CPU資源從當前線程切換給其他線程,使本線程讓出CPU勺使用權處于中斷狀態(tài)。線程使用CPU資源期間,執(zhí)行了sleepintmillsecond方法。⑹線程使用CPU資源期間,執(zhí)行了wait方法。d線程使用CPU資源期間,執(zhí)行某個操作進入阻塞狀態(tài),比如執(zhí)行讀/寫操作引起阻塞。一個線程執(zhí)行完run()方法后,進入什么狀態(tài)?該線程還能再調用start()方法嗎?答:一個線程執(zhí)行完run()方法進入死亡狀態(tài),之后還能再調用start()方法運行線程在什么狀態(tài)時,調用isAlive方法后返回值是false?答:當線程進入死亡狀態(tài)后(實體內存被釋放),線程仍可以調用方法isAlive(),這時返回的值是false。(線程未調用start方法之前,調用isAlive方法返回false.線程調用interrupt的作用是什么?答:intertupt方法經常用來“吵醒”休眠的線程。當一些線程調用sleep方法處于休眠狀態(tài)時,一個使用CPU資源的其它線程在執(zhí)行過程中,可以讓休眠的線程調用interrupt方法“吵醒”自己,即導致休眠的線程發(fā)生InterruptedException異常,從而結束休眠,重新排隊等待CPU資源。wait,notify,notifyAll的作用分別是什么?答:wait()、notify()和notifyAll()都是Object類中的final方法,被所有的類繼承,且不允許重寫的方法。當一個線程使用的同步方法中用到某個變量,而此變量又需要其它線程修改后才能符合本線程的需要,那么可以在同步方法中使用wait()方法。使用wait()方法可以中斷方法的執(zhí)行,使本線程等待,暫時讓出CPU的使用權,并允許其它線程使用這個同步方法。其它線程如果在使用這個同步方法時不需要等待,那么它使用完這個同步方法的同時,應當用notifyAll()方法通知所有的由于使用這個同步方法而處于等待的線程結束等待。如果使用notify方法則只通知處于等待中的某一個線程結束等待將例子10中的TicketSeller類中的循環(huán)條件:WhilefiveNumber1改寫成:IffiveNumber1是否合理,理由是什么?答:是合理的,因為此循環(huán)只有一種可能作循環(huán)體內的語句。將例子10中的TicketSeller類中出現(xiàn)的:Wait改寫成:Thread.sleep2000從新編譯,運行,觀察結果。答:sleep2000線程到時醒來排隊,這期間中斷的原因不一定解決,wait則直到中斷原因消失才結束等待。什么叫守護線程?答:一個線程調用voidsetDaemonbooleanon方法可以將自己設置成一個守護(Daemon線程,例如:thread.setDaemontrue;線程默認是非守護線程,非守護線程也稱作用戶(user)線程。當程序中的所有用戶線程都已結束運行時,即使守護線程的run方法中還有需要執(zhí)行的語句,守護線程也立刻結束運行。一般地,用守護線程做一些不是很嚴格的工作,線程的隨時結束不會產生什么不良的后果。一個線程必須在運行之前設置自己是否是守護線程。對于threadRunnabletarget構造的線程使用同一目標對象的線程,目標對象的成員變量自然成為這些線程的數(shù)據(jù)單__元。答:共享第九章輸入、輸出流1.如果準備讀取一個文件應使用FileInputStream流還是使用FileOutputStream流?答:Fil

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論