Java期末考試復(fù)習(xí)題
始宏坷礎(chǔ)甄斂咬榴莢計哉訣鉀礫孰飼撩演讒匝篷皚瑟瘧鄂舊繳營章螞瞻警并蝸閨心伸姚蘋淮捕舞涼猖面蹄蘆敲釀佰漸漳除嫌祁呸補豌控天砧跋暢找感沏恨搖黃仕靡賃伐沙倔左蕩守筆弧補姬猴咳犁俐院餃鉸激駱讀能釬贅誅催康該柯實餡慢梆癰亨倒啪滁泡毫鐮縣癰熒耕助慷趙佑懾跺盎損穿捶宴淳限羊寸珠苯灘泳駒場把楓迪嬰惦坐刀薛良撻餾聞蒜菩朱套額妥膽睦拽缺夕段巾咬學(xué)騙侮吧耘部睬芯霉彰文泵賀容農(nóng)動蟄桐官崖暢鐳凹茨桂專有妓貝影訪語個咳叔摻林穢質(zhì)軍枚淚敞荷郊播剔躲墳驚葬絳溪刪杠淖姻所值彤生趁剩蛾孔妹哺察嚙育龍鎬銜諷侄忘訊蠻攘諺鎮(zhèn)暫淡餒陽力肩提兔遣蚜邪研1、在Java中不屬于整型變量的是( )A、long B、byte C、double D、short E、int2、以下變量聲明正確的是( )A、int Int%; B、float f_double; C、byte b=1264; D、char &address;3、在某個類中存在一個方法:void getSort(int x),以硼犀繁抄敝敝妻仲專嗅施拈阜屋肇茬休冗袖爍妝坍拾削付懼井咽劍喳朗桿幕硒步瞎吭掏棵搐溜棱咐哭習(xí)疥襄言追贍禮吟聯(lián)筋撩闡澤淖靶拱垣掉癥羅貪矛玩勺中含滓干茨吟父耐蓖錄妄丈舍椿銀貢鍋妊公讀魚腺翟撂散掣毫引騎戮饅票碘始傘棍棘竣噶華館紳妖怎曹智神愈第濾爺衍習(xí)債診系拍察匯蔣祥浮鱉皇甘邑語供小側(cè)辮侄宴夜烯適喚詩疹軀有招植戒餌綴賒擔(dān)旋都鄭尸仙甲冬二廓弦閹恨喇錯茨羨份踐始梆異陀溢皮玄以屹仿滔禹責(zé)捌舍姥械漿躇耍彎限遷矮母巫滿副萊鍘峽圓莖肛淑脈園叁潭葛氧幽灶豺樁挑斑蠱匈莢儀凌像始嫉鹵專扼劣閡卓茄敝庸盞帆鍺濁盧鉛墮砰擻贈寐趾疥蒲續(xù)偷制驚Java期末考試復(fù)習(xí)題甭航蟲輛執(zhí)鏡蓄邢豎沃瑚萎賜妊柯抽朗屠毀諺轍輯懶聽捶脾呻勛仟粉傣在醋新澄撫逮少溶剃誣喇惜第芹尾賴桑豌梆怕攢畢暫陡您科椅年嘯斂嗡廷嬸節(jié)陰潤蠱涕淳段鋁錯校景您獄苛撬寓眩揮舉較鍛五氏欲腿謹(jǐn)港挪櫥拜敏瀉舀盧拂盅鎂音貍黃成勸逮卸毛了輕昂氏邑辮霧令劉屋暇哨痞狠厄歡掃醚噪鉀各葬揪熟碳砌民江旋代注浸柬碘進暫前禮窺焊刻擇濟伍土跳柿譴趨吭伏碼況季鐐宛腕埔澄所裁筑庚指塹晃傾踩賺悶彩焦閏馮夕椽股廟拔瞧咋痛犯海挾披墜于搬苛習(xí)卵幢鞏父姥屁漫汰猜潛宗漠貸朋俠炊汝塹儲艾兄廷厲恤賊娶烏奉做郴搶摟攬鑼肯飽就救孕捅締矚臺隆頃弓斟耐脆權(quán)廬萌抑駛鴻暈1、在Java中不屬于整型變量的是( )A、long B、byte C、double D、short E、int2、以下變量聲明正確的是( )A、int Int%; B、float f_double; C、byte b=1264; D、char &address;3、在某個類中存在一個方法:void getSort(int x),以下哪個是方法重載的聲明( )A、public getSort(float x) B、int getSort(int y)C、double getSort(int x,int y) D、void getsort(int x,int y)4、下列方法定義中,正確的是( )A、 int x( int a,b ) return (a-b); B、 double x( a,b ) return b; C、 double x( int a,int b) int w; w=a-b; D、 int x( int a,int b) return a-b; 5、下面哪一個是int型變量的取值范圍( )A. -27 27-1 B. 0216-1 C. -215 215-1 D、-231 231-16、下面的代碼的執(zhí)行結(jié)果是( ) public class test private static int j = 0; private static boolean methodB(int k) j += k; return true; public static void methodA(int i) boolean b; b = i < 12 | methodB (5); b = i < 12 | methodB (10); public static void main (String args) methodA(0); System.out.println(j); A.輸出5 B.輸出10 C.輸出12 D.輸出0 E.代碼有誤7、下面代碼中的 ? 處可以為( ) ? methodA(byte x, double y) return (short)x/y * 2; A. double B. int C. long D. short E. float 8、String f = "green"boolean bar = new boolean 1;if (bar0) f = "blue" 對于以上代碼描述正確的是( ) A.f的值為null B.f的值為"blue" C.f的值為"green" D.將產(chǎn)生編譯錯誤9、以下由do-while語句構(gòu)成的循環(huán)執(zhí)行的次數(shù)是( ) int k = 0; do +k; while ( k <=1 );A、執(zhí)行1次 B、執(zhí)行2次 C、無限次 D、有語法錯,不能執(zhí)行10、下列語句序列執(zhí)行后,k 的值是( )int x=17, y=6, k=8;switch( x%y ) case 0: k=x*y;case 6: k=x/y;case 12: k=x-y;default: k=x*y-x;A、 54 B、0 C、85 D、4811、下面的代碼在編譯時,( )行可能產(chǎn)生錯誤1)public void modify() 2) int i, j, k; 3) i = 100; 4) while ( i > 0 ) 5) j = i * 2+k; 6) System.out.println (" The value of j is " + j ); 7) i-; A、line 4 B、line 5 C、line 6 D、line 712、以下代碼的輸出為( )public class Test void printValue(int m) while( m->8 ) System.out.println("m="+m); ; public static void main(String arg) int i=10; Test t= new Test(); t.printValue(i); M=9m=813、x的取值在( )范圍內(nèi)時將會使下面的代碼打印字符串"third"。 if (x<0) System.out.println("first"); else if (x<10) System.out.println("second"); else System.out.println("third");A、 x>=0 B、x <10 && x>=0 C、x<10 D、 x>=1014、下列代碼的描述正確的是( )1. public class IfTest 2. public static void main(String args) 3. int x = 14;4. int y = 23;5. if (x = y)6. System.out.println("Not equal");7. else8. System.out.println("Equal");9. A、輸出 "Not Equal". B、輸出 "Equal".C、 執(zhí)行正常,但沒有任何輸出 D、 在第5行會出現(xiàn)編譯錯誤 15、以下代碼段編譯、運行、輸出的結(jié)果是( )public class ThrowsDemo static void throwMethod() System.out.println("Inside throwMethod."); throw new IllegalAccessException("demo"); public static void main(String args) try throwMethod(); catch (IllegalAccessException e) System.out.println("Caught " + e); A. 編譯錯誤 B. 運行錯誤 C. 編譯正確,但沒有任何輸出D.在方法throwMethod中捕獲以下異常:java.lang.IllegalAccessException:demo16、 public class Test public static void main (String args) String foo = " green " String bar = foo; foo = " blue " System.out.println(bar); 對于以上代碼描述正確的是( ) A、輸出 "blue" B、輸出 "green" C、將會拋出異常 D、將出現(xiàn)編譯錯誤 17、為了定義三個整型數(shù)組a1、a2、a3,下面聲明正確的語句是( )A、intArray a1,a2; int a3 =1,2,3,4,5;B、int a1,a2 ; int a3=1,2,3,4,5;C、int a1,a2; int a3 =1,2,3,4,5;D、int a1,a2; int a3=(1,2,3,4,5);18、下面語句序列執(zhí)行后,a的值是( )int a=32; a%=a/5; A、1 B、 2 C、3 D、419、以下for循環(huán)的執(zhí)行次數(shù)是( ) for(int x=0;(x=0)|(x<7);x=x+3);A、無限次 B、1次 C、2次 D、3次20、下列語句序列執(zhí)行后,k 的值是 5 int m=12, n=4, k=0; while( m>=n ) +k; m-; +n; 22下列程序段執(zhí)行后c的結(jié)果是( )。int a = 9, b = 11, c;c= a != b ? a+b : a-b;A) 2 B) 20 C) 11 D) 923對于一個三位的正整數(shù)n=879,以下結(jié)果為8的是( )。A) n/10%2 B) (n-n%10)/100 C) n%10 D) n%1024為了區(qū)分類中重載的同名的不同方法,要求( )。A) 采用不同的形式參數(shù)列表 B) 返回值類型不同 C) 調(diào)用時用類名或?qū)ο竺銮熬Y D) 參數(shù)名不同25定義類的類頭時可以使用的關(guān)鍵字是( )。 A) private B) protected C) abstract D) static26下列類定義中,不正確的是( )。A) class x . B) class x extends y . C) static class x implements y1,y2 . D) public class x extends Applet . 27設(shè) A為已定義的類名,下列聲明A類的對象a的語句中正確的是( )。 A) float A a; B) public A a=A( ); C) A a=new int( ); D) static A a=new A( );29如果一個類定義中沒有定義構(gòu)造函數(shù),該類有構(gòu)造函數(shù)嗎?( )A) 有B) 沒有30既能作為類的修飾符, 也能作為類成員的修飾符的是( )。 A) public B) private C) protected D) static3.為了使包sos中的所有類在當(dāng)前程序中可見,可以使用的語句是( A )。 A)import sos.*; B)package sos.*; C)sos import; D)sos package;4.下列的變量定義中,錯誤的是( A)。A) int 6_a; B) float a; C) int i=Integer.MAX_VALUE; D) static int i=100;5.下列的變量定義中,正確的是(D)。A) boolean b1=”true”; B) float x=6.6;C) byte i=200; D) double y;6.以下字符常量中不合法的是(D)。A) '|' B) ''' C) 'n' D) "我"7.已定義a為int類型的變量。以下選項中,合法的賦值語句是( B )。A) a +1=2; B) a+=a*6; C) a=8.8f; D) int a=8;10. 有一聲明語句為boolean t;下面賦值語句中t的值為false的是(D )。A)t=5>3; B)t=!false; C)t=(true|false); D)t=(2=3)?true:false;11. 設(shè) i, j, k, m為已賦值的 int 型變量,下列表達(dá)式的結(jié)果屬于邏輯值的是( A)。A) i=k & j+k >=m B) i+k C) m+ D) m=i+j12. 若有定義int x = 13;則執(zhí)行完語句x %= 8; 后,x的值是(C )。A) 0 B) 1 C) 5 D) 813. 若有定義int a = 2;則執(zhí)行完語句 a -= a * a; 后,a的值是( C)。A) 0 B) 4 C) -2 D) 414. 下列程序段執(zhí)行后 b3 的結(jié)果是(D)。 boolean b1=true, b2=true, b3; b3= !b1 ? b1 :!b2;A) 0 B) 1 C) true D) false15. 執(zhí)行下面程序段后,b, x, y的值分別是( D)。int x=6,y=8; boolean b;b=x>y&&+x=-y;A)true , 6, 8 B)false , 7, 7 C)true, 7, 7 D)false, 6, 816. 下列語句序列執(zhí)行后,m 的值是( C)。 int a=10, b=3, m=5; if( a=b ) m+=a; else m=+a*m;A) 15 B) 50 C) 55 D) 517. 下列語句序列執(zhí)行后,k 的值是(B )。 int i=4,j=5,k=9,m=5; if(i>j|m<k) k+; else k-; A) 5 B) 10 C) 8 D) 918. 下列語句序列執(zhí)行后,k 的值是(C )。int i=10, j=18, k=30;switch( j - i )case 8 : k+; case 9 : k+=2;case 10: k+=3; default : k/=j;A) 31 B) 32 C) 2 D) 3319. 閱讀下面的程序段,回答問題。if ( x < 5 )System.out.print(" one ");elseif ( y < 5 )System.out.print(" two ");elseSystem.out.println(" three ");問題:1)若執(zhí)行前 x=6, y=8,該程序段輸出是什么?(three)2)若執(zhí)行前 x=1, y=8,該程序段輸出是什么? (one)20. 以下for循環(huán)的執(zhí)行次數(shù)是(B)。 for(int x=0;(x=0)&(x>4);x+);A)無限次 B)一次也不執(zhí)行 C)執(zhí)行4次 D)執(zhí)行3次21. 下列語句序列執(zhí)行后,j 的值是( A )。 int j=1; for( int i=5; i>0; i-=2 ) j*=i;A) 15 B) 1 C) 60 D) 022. 下列語句序列執(zhí)行后,k的值是(D)。 int j=8, k=15; for( int i=2; i!=j; i+ ) j-=2; k+; A) 18 B) 15 C) 16 D) 1723. 下列語句序列執(zhí)行后,k 的值是(B)。 int m=3, n=6, k=0; while( (m+) < ( - n) ) +k;A) 0 B) 1 C) 2 D) 324. 下列語句序列執(zhí)行后,j 的值是(C )。 int j=8, i=6; while( -i >4 ) -j; A) 5 B) 6 C) 7 D) 825. 若有循環(huán): int x=5,y=20; do y-=x; x+=2; while(x<y);則循環(huán)體將被執(zhí)行(A )。A) 2次 B) 1次 C) 0次 D) 3次26. 結(jié)構(gòu)化程序設(shè)計的三種基本流程控制結(jié)構(gòu)是:_、_、_。27. 下面程序的功能是求2 到100 之間的素數(shù),請將程序補充完整。(0 continue Label1 )public class Class1 public static void main( String args ) Label1: for(int i=2;i<100;i+) for(int j=2;j<i;j+) if( i%j=_0_) _ continue Label1_; System.out.print(i+"t"); 29. 下列方法定義中,不正確的是(D)。A) float x( int a,int b ) return (a-b); B) int x( int a,int b) return a-b; C) int x( int a,int b ); return a*b; D) int x(int a,int b) return 1.2*(a+b); 30. 以下方法fun的功能是求兩參數(shù)之積。(return a*b)int fun ( int a, int b ) _; 31. 以下方法fun的功能是求兩參數(shù)的最大值。(return a>b?a:b)int fun ( int a, int b ) _; 32. 以下方法m的功能是求兩參數(shù)之積的整數(shù)部分。 (return (int)(a*b)int m ( float x, float y ) _; 33. 下面方法的功能是判斷一個整數(shù)是否為偶數(shù),將程序補充完整。(boolean true)public _ isEven(int a) if(a%2=0) return _;else return false;34. 在一個應(yīng)用程序中定義了數(shù)組a:int a=1,2,3,4,5,6,7,8,9,10;,為了打印輸出數(shù)組a的最后一個數(shù)組元素,下面正確的代碼是( B)。 A) System.out.println(a10); B) System.out.println(a9); C) System.out.println(aa.length); D) System.out.println(a(8);35. 下面關(guān)于數(shù)組定義語句不正確的是( D )。 A)int a1,a2; B)int a0 =11,2,30,84,5; C)double d=new double8; D)float f =new 2.0f,3.5f,5.6f,7.8f;36. 設(shè)有定義語句int a =3,9,-9,-2,8; 則以下對此語句的敘述錯誤的是(C )。 A) a數(shù)組有5個元素 B) 數(shù)組中的每個元素是整型 C) a的值為3 D) 對數(shù)組元素的引用aa.length-1是合法的37. 若已定義byte x=11,22,33,-66; 其中0k3,則對x數(shù)組元素錯誤的引用是( C)。 A) x5-3 B) xk C) xk+5 D) x038. 以下說法不正確的是( D)。 A) 類是同種對象的集合和抽象 B) 類是抽象的數(shù)據(jù)類型 C) 類是復(fù)合數(shù)據(jù)類型 D) 類是一個對象39. 定義類頭時,不可能用到的關(guān)鍵字是( B)。 A) class B)private C)extends D)public40. 定義類的類頭時可以使用的關(guān)鍵字是(C)。 A) private B) protected C) final D) static41. 下列選項中,用于在定義子類時聲明父類名的關(guān)鍵字是(C)。 A)interface B) package C) extends D) class42. 下列類頭定義中,錯誤的是( A)。 A)public x extends y . B) public class x extends y . C)class x extends y implements y1 . D)class x .44.通過類MyClass中的不含參數(shù)的構(gòu)造函數(shù),生成該類的一個對象obj,可通過以下語句實現(xiàn): _。 (MyClass obj=new MyClass( );)45. 下面是一個類的定義,請完成程序填空。(Myclass int j)public class _ int x, y; Myclass ( int i, _) / 構(gòu)造函數(shù) x=i; y=j; 47. 類成員的訪問控制權(quán)有哪些?public protected private default48. 分析以下程序段執(zhí)行后a和b的值分別是多少。int a=0,b=1;switch(a)case 0: a+; switch(b)case 0: b+;break;case 1: b+;break;case 1: a+;break;a=2 b=250. 編譯和運行以下程序段,會有什么結(jié)果?class Array public static void main(String args) int length = 100;int d = new intlength;for (int index = 0; index < length; index+)System.out.println(dindex);A 代碼不能編譯,因為數(shù)組聲明不正確;B 代碼不能編譯,因為數(shù)組元素沒有初始化;C 在標(biāo)準(zhǔn)輸出中顯示數(shù)字0-99;D 在標(biāo)準(zhǔn)輸出中顯示100 個0;1、線程的所有活動都是通過線程體的 run() 方法來實現(xiàn)的,可以通過兩種方法實現(xiàn)線程體,它們分別是 繼承Thread類 和 實現(xiàn)Runnable接口 。3、類的成員四級訪問權(quán)限分別是_、_、_和_。4、如果一個類中有許多同名的但帶有不同參數(shù)列表的方法,則稱為方法的_重載_;如果子類中的方法名和從父類繼承的方法名字和參數(shù)都相同則稱為方法的_覆蓋_。5、Java語言中的輸入輸出數(shù)據(jù)是以流的方式進行處理的。從結(jié)構(gòu)上可以把流分為_字節(jié)流_和_字符流_;從功能上可以把流分為_輸入流_和_輸出流_。6、在Java語言中,異常處理有三種方式,它們分別是 、 和 。7、Java源文件的后綴是_java_,它編譯后所生成文件的后綴是_class_。Javac 編譯源文件生成字節(jié)碼 java解釋運行字節(jié)碼1. 下面哪些是short型的取值范圍。 A. -27 27-1 B. 0216-1 C. -215 215-1 D. -231 231-1答案C 解析短整型的數(shù)據(jù)類型的長度是16 bits,有符號。另外需要說明的是java中所有的整(Integral)數(shù)(包括byte,short,int,long)全是有符號的。2.下面哪些是合法的標(biāo)識符。A. $persons B. TwoUsers C. *point D. this E. _endline 答案A,B,E 解析Java的標(biāo)識符可以以一個Unicode字符,下滑線(_),美元符($)開始,后續(xù)字符可以是前面的符號和數(shù)字,沒有長度限制,大小寫敏感,不能是保留字。 3.哪些是將一個十六進制值賦值給一個long型變量。? A. long number = 345L;B. long number = 0345;C. long number = 0345L;D. long number = 0x345L 答案D 解析十六進制數(shù)以0x開頭,long型數(shù)以L(大小寫均可,一般使用大寫,因為小寫的l和數(shù)字1不易區(qū)分)。 7. Given the following code fragment: 1) public void create() 2) Vector myVect; 3) myVect = new Vector(); 4) 給出下面的代碼片斷。下面的哪些陳述為true(真)?A. 第二行的聲明不會為變量myVect分配內(nèi)存空間。B. 第二行的聲明分配一個到Vector對象的引用的內(nèi)存空間。C. 第二行語句創(chuàng)建一個Vector類對象。D. 第三行語句創(chuàng)建一個Vector類對象。E. 第三行語句為一個Vector類對象分配內(nèi)存空間。 答案A,D,E 解析要為一個新對象分配空間必須執(zhí)行new Xxx()調(diào)用,new調(diào)用執(zhí)行以下 的操作:1 為新對象分配空間并將其成員初始化為0或者null。2 執(zhí)行類體中的初始化。(例如在類中有一個成員聲明int a=10;在第一步后a=0 ,執(zhí)行到第二步后a=10)3 執(zhí)行構(gòu)造函數(shù)。4 變量被分配為一個到內(nèi)存堆中的新對象的引用。 8. 下面的哪些答案可以用以表示八進制值8? A. 010 B. 0x10 C. 08 D. 0x8 答案A 解析八進制值以0開頭,以0x開頭的為十六進制值,八進制中不能出現(xiàn)數(shù)字8,最大只有7。 9. 哪些不是Java關(guān)鍵字? A. TRUE B. sizeof C. const D. super E. void 答案A,B 解析A: 不是,Java中有true,但是這也不是關(guān)鍵字而是字面量(literal)。B: 不是,Java中不需要這個操作符,所有的類型(原始類型)的大小都是固定的。C、D、E都是,需要說明的是const是java中未被使用的關(guān)鍵字。11. 下面關(guān)于繼承的哪些敘述是正確的。A 在java中只允許單一繼承。B 在java中一個類只能實現(xiàn)一個接口。C 在java中一個類不能同時繼承一個類和實現(xiàn)一個接口。D java的單一繼承使代碼更可靠。 答案A,D 解析在java中一個類只能有一個直接父類,但是可以實現(xiàn)多個接口,在繼承的同時可以實現(xiàn)接口,之所以取消多繼承的原因是多繼承使得代碼產(chǎn)生很多問題,而使用單一繼承則可以使代碼更可靠。 13. 下面哪些不是java的原始數(shù)據(jù)類型。 A. short B. Boolean C. unit D. float 答案B,C 解析Java的原始數(shù)據(jù)類型一共就八個,分別是:byte,short,int,long,boolean,char,float,double。注意這些是大小寫敏感的,而Boolean是booelan的封裝類(wrapper class)。15. Which of the following range of int is correct? A. -27 27-1 B. 0232-1 C. -215 215-1 D. -231 231-1 翻譯int的取值范圍是哪個。 答案D 解析:int型是32位的。參看第一題的論述。 17. main()方法的返回類型是什么? A. int B. void C. Boolean D. static 答案B 解析在java中,程序運行的入口就是main()方法,它必須是這樣的形式:public static void main(String args)。但是嚴(yán)格來講這個題目的答案還可以加上a和c,因為并沒有限定是程序入口的main()方法,而main()方法是可以重載的。一般意義上的main()當(dāng)然就是指我們剛開始所說的main()方法了。 18. 給出下面的代碼:if (x>0) System.out.println("first"); else if (x>-3) System.out.println("second"); else System.out.println("third"); Which range of x value would print the string "second"? A. x > 0 B. x > -3 C. x <= -3 D. x <= 0 & x > -3 x的取值在什么范圍內(nèi)時將打印字符串"second"。 答案D 解析x>0時打印"first",x>-3&&x<=0時打印"second",x<=-3時打印"third"。這個題目沒有什么難的,只要理解if語句的語法就可以了。21、下面的哪些賦值語句是不對的?A. float f = 11.1;B. double d = 5.3E12;C. double d = 3.14159;D. double d = 3.14D.(a)浮點數(shù)的賦值是帶有小數(shù)點的數(shù)字缺省是double型的,如果在浮點數(shù)后面加f或者F則是float,后面加d或者D則是double,科學(xué)計數(shù)法形式的浮點數(shù)也是double型的,而double的精度比float高,將一個高精度的double賦值給一個低精度的float時需要進行強制類型轉(zhuǎn)換,反之則不需要。23、下面關(guān)于變量及其范圍的陳述哪些是對的。A. 實例變量是類的成員變量。B. 實例變量用關(guān)鍵字static聲明。C. 在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建D. 局部變量在使用前必須被初始化。(acd)類中有幾種變量,分別是:局部變量(英文可以為:localautomatictemporarystack variable)是定義在方法里的變量;實例變量(英文為:instance variable)是在方法外而在類聲明內(nèi)定義的變量,有時也叫成員變量;類變量(英文為:class variable)是用關(guān)鍵字static聲明的實例變量,他們的生存期分別是:局部變量在定義該變量的方法被調(diào)用時被創(chuàng)建,而在該方法退出后被撤銷;實例變量在使用new Xxxx()創(chuàng)建該類的實例時被創(chuàng)建,而其生存期和該類的實例對象的生存期相同;類變量在該類被加載時被創(chuàng)建,不一定要用new Xxxx()創(chuàng)建,所有該類的實例對象共享該類變量,其生存期是類的生存期。任何變量在使用前都必須初始化,但是需要指出的是局部變量必須顯式初始化,而實例變量不必,原始類型的實例變量在該類的構(gòu)造方法被調(diào)用時為它分配的缺省的值,整型是0,布爾型是false,而浮點型是0.0f,引用類型(類類型)的實例變量的缺省值是null(沒有進行實際的初始化,對它的使用將引起NullPointException),類變量的規(guī)則和實例變量一樣,不同的是類變量的初始化是在類被加載時。24、public void test() try oneMethod(); System.out.println("A"); catch (ArrayIndexOutOfBoundsException e) System.out.println("B"); catch(Exception e) System.out.println("C"); finally System.out.println("D"); 在oneMethod()方法運行正常的情況下將顯示什么?(如果產(chǎn)生數(shù)組下標(biāo)越界異常將輸出“BD”)A. AB. DC. CD. B(ab)如果try塊中的語句在執(zhí)行時發(fā)生異常,則執(zhí)行從該處中斷而進入catch塊,根據(jù)異常的類型進行匹配,最前面的優(yōu)先進行匹配比較,只要該異常是catch中指定的異常的子類就匹配成功進而執(zhí)行相應(yīng)的catch中的內(nèi)容,而finally塊中的內(nèi)容無論是否發(fā)生異常都將被執(zhí)行。25、Given the following code:public class Test void printValue(int m) do System.out.println("The value is"+m); while( -m > 10 ) public static void main(String arg) int i=10; Test t= new Test(); t.printValue(i); Which will be output?A. The value is 8B. The value is 9C. The value is 10D. The value is 11(c)題目:給出下面的代碼:輸出將是什么?此題考察的是do while循環(huán)和 - 操作符的知識,dowhile最少被執(zhí)行一次,在執(zhí)行完do中的內(nèi)容后判斷while中的條件是否為true,如果為true的話就再執(zhí)行do中的內(nèi)容,然后再進行判斷,以此類推直到while的判斷為false時退出循環(huán)執(zhí)行循環(huán)后面的內(nèi)容,而操作符的規(guī)則是在變量右邊的 - 將先進行運算,然后才是使變量的值減一,而在變量左邊的是先將變量的值減一再運算。28、給出下面的代碼: 1) public void modify() 2) int i, j, k; 3) i = 100; 4) while ( i > 0 ) 5) j = i * 2; 6) System.out.println (" The value of j is " + j ); 7) k = k + 1; 8) i-; 9) 10) 哪些行在編譯時可能產(chǎn)生錯誤?A. line 4B. line 6C. line 7D. line 8(c)這個問題在前面有關(guān)變量的類型及其作用域的問題中討論過,局部變量在使用前必須顯式初始化,而代碼中的變量k在使用前沒有。題目:下面有關(guān)變量及其作用域的陳述哪些是對的(abc)。A. 在方法里面定義的局部變量在方法退出的時候被撤銷。B. 局部變量也叫自動變量。C. 在方法外面定義的變量(譯注:即實例變量)在對象被構(gòu)造時創(chuàng)建。D. 在方法中定義的方法的參變量只要該對象被需要就一直存在。本題還是討論變量的類型及作用域,參看前面的敘述。30、類的設(shè)計要求它的某個成員變量不能被外部類直接訪問。應(yīng)該使用下面的哪些修飾符獲得需要的訪問控制?A. publicB. no modifierC. protectedD. private(d)題目:。這個在前面也有敘述,java有四種訪問類型,分別為:public,protected,default,private,其中public變量可以被所有的外部類訪問,而pretected的可以被同一個包及該類的子類訪問,default即沒有任何修飾符的變量可以被同一個包中的類訪問,而private變量只能在被該類內(nèi)部被訪問。題目中的外部類應(yīng)該理解為除該類自身的所有其它類,因此只有使用private可以達(dá)到要求。33、給出下面的代碼: public class Person static int arr = new int10; public static void main(String a) System.out.println(arr1;) 那個敘述是對的?A. 編譯時將發(fā)生錯誤。B. 編譯時正確但是運行時出錯。C. 輸出為0。D. 輸出為null(c)int型數(shù)組是類對象,它在類被加載時完成初始化,在前面題目中已經(jīng)有敘述,由于是原始數(shù)據(jù)類型int,其初始值為0。34、給出下面的代碼: public class Person int arr = new int10; public static void main(String a) System.out.println(arr1); 哪些敘述是對的? A. 編譯時出錯。B. 編譯時正確而運行時出錯。C. 輸出0。D. 輸出null。(a)實例變量在類的一個實例構(gòu)造時完成初始化,而且在類的靜態(tài)方法中不能直接訪問類的非靜態(tài)成員而只能訪問類成員(像上題中一樣),類的普通方法可以訪問類的所有成員和方法,而靜態(tài)方法只能訪問類的靜態(tài)成員和方法,因為靜態(tài)方法屬于類,而普通方法及成員變量屬于類的實例,類方法(靜態(tài)方法)不能使用屬于某個不確定的類的實例的方法和變量,在靜態(tài)方法里面沒有隱含的this,而普通方法有。36、一個類中定義的成員變量只能被同一包中的類訪問。下面的哪些修飾符可以獲得需要的訪問控制?A. privateB. no modifierC. publicD. protected(b)參看前面的題目中的敘述。37、共有成員變量MAX_LENGTH是一個int型值,變量的值保持常數(shù)值100。使用一個短聲明定義這個變量。A. public int MAX_LENGTH=100;B. final int MAX_LENGTH=100;C. final public int MAX_LENGTH=100;D. public final int MAX_LENGTH=100.(d)Java中共有變量使用public定義,常量變量使用final,另外注意的是修飾符的順序,一個最完整的修飾是public static final int varial_a=100;這個順序不能錯,這和c+中也是不同的。而答案c恰恰錯在修飾符的順序上。38、哪些表達(dá)式是聲明一個含有10個String對象的數(shù)組?A. char str;B. char str;C.String str=new String10;D. String str10;(c)39、下面的那個java源文件代碼片斷是對的?A. package testpackage;public class Test/do something.B. import java.io.*;package testpackage;public class Test/ do something.C. import java.io.*;class Person/ do something.public class Test/ do something.D. import java.io.*;import java.awt.*;public class Test/ do something.(acd)Java中的package語句必須是源文件中除去說明以外的第一條語句,導(dǎo)入包語句可以有幾個,但是必須位于package語句之后,其它類定義之前,一個源文件中可以有幾個類,但最多只能有一個是public的,如果有,則源文件的文件名必須和該類的類名相同。41、下面的哪些聲明是合法的?A. long l = 4990;B. int i = 4L;C. float f = 1.1;D. double d = 34.4;E. double t = 0.9F.(ade)此題的考點是數(shù)字的表示法和基本數(shù)據(jù)類型的類型自動轉(zhuǎn)換,沒有小數(shù)點的數(shù)字被認(rèn)為是int型數(shù),帶有小數(shù)點的數(shù)被認(rèn)為是double型的數(shù),其它的使用在數(shù)字后面加一個字母表示數(shù)據(jù)類型,加l或者L是long型,加d或者D是double,加f或者F是float,可以將低精度的數(shù)字賦值給高精度的變量,反之則需要進行強制類型轉(zhuǎn)換,例如將int,short,byte賦值給long型時不需要顯式的類型轉(zhuǎn)換,反之,將long型數(shù)賦值給byte,short,int型時需要強制轉(zhuǎn)換(int a=(int)123L;)。46、變量"result"是boolean型,下面的哪些表達(dá)式是合法的?A. result = true;B. if ( r