《Java基礎(chǔ)入門(mén)》_課后習(xí)題要點(diǎn)
《《Java基礎(chǔ)入門(mén)》_課后習(xí)題要點(diǎn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《Java基礎(chǔ)入門(mén)》_課后習(xí)題要點(diǎn)(37頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、博學(xué)谷一一讓IT教學(xué)更簡(jiǎn)單,讓IT學(xué)習(xí)更有效 《Java基礎(chǔ)入門(mén)》課后習(xí)題 第1章Java開(kāi)發(fā)入門(mén) 一、填空題 1、 Java 的三大體系分另1J是 _JavaSE、 _JavaEE、 _JavaME。 2、Java程序的運(yùn)行環(huán)境簡(jiǎn)稱(chēng)之為 JRE。 3、編譯Java程序需要使用_javac 命令。 4、javac.exe和java.exe兩個(gè)可執(zhí)行程序存放在 JDK安裝目錄的bin 目錄下。 5、path 環(huán)境變量用來(lái)存儲(chǔ) Java的編譯和運(yùn)行工具所在的路徑, 而_classpath 環(huán)境變量則用 來(lái)保存保存Java虛擬機(jī)要運(yùn)行的“ .class”文件路徑。 二、選擇題
2、 1、以下選項(xiàng)中,哪些屬于 JDK工具?(多選)ABCD A、Java編譯器 B、Java運(yùn)行工具 C、Java文檔生成工具 D、Java打包工具 2、Java屬于以下哪種語(yǔ)言? C A、機(jī)器語(yǔ)言 B、 匯編語(yǔ)言 C、高級(jí)語(yǔ)言 D、以上都不對(duì) 3、下面哪種類(lèi)型的文件可以在 Java虛擬機(jī)中運(yùn)行? D A、.java B、.jre C、.exe D、.class 4、安裝好JDK后,在其bin目錄下有許多exe可執(zhí)行文件,其中java.exe命令的作用是以下哪一種? B A、Java文檔制作工具 B、Java解釋器 C、Java編譯器 D、Java啟動(dòng)器 5、如果jdk的安裝路
3、徑為:d:\jdk,若想在命令窗口中任何當(dāng)前路徑下,都可以直接使用 javac和java 命令,需要將環(huán)境變量 path設(shè)置為以下哪個(gè)選項(xiàng)? B A. d:\jdk; B . d :\jdk\bin; C . d:\jre\bin; D . d:\jre; 三、問(wèn)答題 1、簡(jiǎn)述Java的特點(diǎn)。 2、簡(jiǎn)述JRE與JDK的區(qū)別。 四、編程題 使用記事本編寫(xiě)一個(gè) HelloWorld程序,在dos命令行窗口編譯運(yùn)行。請(qǐng)按照題目的要求編寫(xiě)程序并給 出運(yùn)行結(jié)果。 第2章Java編程基礎(chǔ) 一、填空題 1、Java中的程序代碼都必須在一個(gè)類(lèi)中定義,類(lèi)使用 __class 關(guān)鍵字來(lái)定義。
4、 2、布爾常量即布爾類(lèi)型的兩個(gè)值,分別是 _true 和—flase。 3、Java中的注釋可分為三種類(lèi)型, 分別是_單行注釋〃—、—多行注釋_/* */__、文檔/注釋** */ 4、Java中的變量可分為兩種數(shù)據(jù)類(lèi)型,分別是 _基本數(shù)據(jù)類(lèi)型 和_引用數(shù)據(jù)類(lèi)型 。 5、在Java中,byte類(lèi)型數(shù)據(jù)占 1—個(gè)字節(jié),short類(lèi)型數(shù)據(jù)占—2 個(gè)字節(jié),int類(lèi)型數(shù)據(jù)占 4 個(gè)字節(jié),long類(lèi)型數(shù)據(jù)占 —8—個(gè)字節(jié)。 6、在邏輯運(yùn)算符中,運(yùn)算符 一&―和—&& 用于表示邏輯與,__|和__||表示邏輯或。 7、若x = 2 ,則表達(dá)式(x + + )/3的值是__0—。 8、若int
5、 a =2; a+=3;執(zhí)行后,變量a的值為—5。 9、若 int []a={12,45,34,46,23};,則 a[2]= __34。 10、若 int a[3][2]={{123,345},{34,56},{34,56}} ,則 a[2][1]= __56。 二、判斷題 1、Java語(yǔ)言不區(qū)分大小寫(xiě)。錯(cuò) 2、0xC5表示的是一個(gè)十六進(jìn)制整數(shù)。對(duì) 3、continue語(yǔ)句只用于循環(huán)語(yǔ)句中,它的作用是跳出循環(huán)。錯(cuò) 4、“/*…*/中可以嵌套“ //”注釋?zhuān)荒芮短住?/*???*/”注釋。對(duì) 5、-5%3的運(yùn)算結(jié)果是2。錯(cuò) 三、選擇題 1、以下選項(xiàng)中,哪些屬于合法的標(biāo)識(shí)
6、符?(多選) AD A、Hello_World B、class C、123username D、username123 2、關(guān)于方法重載的描述,以下選項(xiàng)中哪些是正確的?(多選)( AD) ABD A、方法名必須一致 B、返回值類(lèi)型必須不同 C、參數(shù)個(gè)數(shù)必須一致 D、參數(shù)的個(gè)數(shù)或類(lèi)型不一致 3、以下關(guān)于變量的說(shuō)法錯(cuò)誤的是? C A、變量名必須是一個(gè)有效的標(biāo)識(shí)符 B、變量在定義時(shí)可以沒(méi)有初始值 C、變量一旦被定義,在程序中的任何位置都可以被訪問(wèn) D、在程序中,可以將一個(gè) byte類(lèi)型的值賦給一個(gè)int類(lèi)型的變量,不需要特殊聲明 4、以下選項(xiàng)中,switch語(yǔ)句判斷條件可以接收的
7、數(shù)據(jù)類(lèi)型有哪些? (多選)ABCD A、 int B、 byte C、char D、 short 5、假設(shè)int x = 2,三元表達(dá)式 x>0?x+1:5的運(yùn)行結(jié)果是以下哪一個(gè)? C A、0 B、2 C、3 D、5 6、下面的運(yùn)算符中,用于執(zhí)行除法運(yùn)算是哪個(gè)? A A、/ B、\ C、% D、* 7、下列語(yǔ)句哪些屬于循環(huán)語(yǔ)句?(多選) AC A、for語(yǔ)句 B、if語(yǔ)句 C、while語(yǔ)句 D、switch語(yǔ)句 8、下面哪種寫(xiě)法可以實(shí)現(xiàn)訪問(wèn)數(shù)組 arr的第1個(gè)元素?A A、arr[0] B、arr(0) C、arr[1] D、arr(1) 9、以下哪個(gè)選項(xiàng)可以正確創(chuàng)建一個(gè)
8、長(zhǎng)度為 3的二維數(shù)組? (B)C A、 new int [2][3]; B、 new int[3肛 C、 new int[][3]; D、 以上答案皆不對(duì) 10、請(qǐng)先閱讀下面的代碼。 int x = 1; int y = 2; if (x % 2 == 0) { y++; } else { y--; } System.out.println("y=" + y); 上面一段程序運(yùn)行結(jié)束時(shí),變量 y的值為下列哪一項(xiàng)? A A、1 B、2 C、3 D、switch 語(yǔ)句 四、程序分析題 閱讀下面的程序,分析代碼是否能夠編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。否則請(qǐng)說(shuō)明
9、編 譯失敗的原因。 代碼一 :b=7(編譯不通過(guò)。int值4和b相加時(shí),由于變量 b的類(lèi)型為byte,取值范圍沒(méi)有int類(lèi)型大, 存不下int類(lèi)型的值,因此編譯不通過(guò) ) public class Test01 { public static void main(String口 args) { byte b = 3; b = b + 4; System.out.println("b=" + b); } } 代碼二:不能,y只在{}有效(編譯不通過(guò)。這是因?yàn)?y是在最里層的代碼塊中定義的一個(gè)變量,只 有在那個(gè)代碼) public class Test02 { public st
10、atic void main(String口 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 因?yàn)闆](méi)有break,,所以4以后都執(zhí)行 public class Test03 { public static void main(String args口){ int x = 4, j = 0; switch (x) {
11、 case 1: j++; case 2: j++; case 3: j++; case 4: j++; case 5: j++; default: j++; } System.out.println(j); } } 代碼四: 9 8 7 public class Test04 { public static void main(String args口){ int n = 9; while (n > 6) { System.out.println(n); n--; } } } 五、簡(jiǎn)答題 1、請(qǐng)列舉Java語(yǔ)言中的八種基本數(shù)據(jù)類(lèi)型,并說(shuō)
12、明每種數(shù)據(jù)類(lèi)型所占用的空間大小。 Java語(yǔ)言的八種基本數(shù)據(jù)類(lèi)型有: byte字節(jié)型,占一個(gè)字節(jié)。 short短整型,占兩個(gè)字節(jié)。int整型, 占4個(gè)字節(jié)。long長(zhǎng)整型,占8個(gè)字節(jié)。float單精度浮點(diǎn)型,占4個(gè)字節(jié)。double雙精度浮點(diǎn)型,占8個(gè) 字節(jié)。char字符型,占兩個(gè)字節(jié)。 boolean型,表示邏輯值,有 true和false兩個(gè)值,分別占一個(gè)字節(jié)。 2、簡(jiǎn)述&&與&的區(qū)別并舉例說(shuō)明。 如果使用“ &”在表達(dá)式之間進(jìn)行連接,那么無(wú)論任何情況, “&”兩邊的表達(dá)式都會(huì)參與計(jì)算。如果使用 “&&”進(jìn)行連接,當(dāng)“ &&”左邊的表達(dá)式為false,則不會(huì)執(zhí)行其右邊的表達(dá)式。例如
13、定義 int x = 2,y = 0;
boolean b = x < y & x / 2 > 0 表達(dá)是會(huì)發(fā)生被 0除異常,因?yàn)閤 / y的表達(dá)式執(zhí)行了。 而boolean b = x < y & x / 2 > 0是不會(huì)出現(xiàn)這種異常的,因?yàn)?x 14、示:
1)使用循環(huán)語(yǔ)句實(shí)現(xiàn)自然數(shù) 1?99的遍歷。
2)在遍歷過(guò)程中,通過(guò)條件判斷當(dāng)前遍歷的數(shù)是否為奇數(shù),如果是就累加,否則不加。
2、已知函數(shù)
『x + 3 ( x > 0 )
y = - 0 ( x = 0 )
I x2 - 1 ( x < 0 )
請(qǐng)?jiān)O(shè)計(jì)一個(gè)方法實(shí)現(xiàn)上面的函數(shù),根據(jù)傳入的值 x的不同,返回對(duì)應(yīng)的 y值。
提示:
1)定義一個(gè)static修飾符修飾的方法,方法接收一個(gè) int類(lèi)型的參數(shù)x,返回值為int類(lèi)型。
2)在方法中使用if…else if..else語(yǔ)句針對(duì)x的值進(jìn)行三種情況的判斷。
3)根據(jù)判斷結(jié)果分別執(zhí)行不同的表達(dá)式,并將結(jié)果賦予變量 y。 15、
4)在方法的最后返回 y的值。
5)在main方法中調(diào)用設(shè)計(jì)好的方法,傳入一個(gè) int型的值,將方法的返回值打印。
3、請(qǐng)編寫(xiě)程序,實(shí)現(xiàn)對(duì)數(shù)組 {25,24,12,76,101,96,28}的排序。
提示:使用冒泡排序算法。
第3章面向?qū)ο螅ㄉ希?
一、填空題
1、面向?qū)ο蟮娜筇卣魇欠庋b性 _、_繼承性 和—多態(tài)性。
2、在Java中,可以使用關(guān)鍵字_new 來(lái)創(chuàng)建類(lèi)的實(shí)例對(duì)象。
3、定義在類(lèi)中的變量被稱(chēng)為 —成員變量,定義在方法中的變量被稱(chēng)為局部變量
4、面向?qū)ο蟪绦蛟O(shè)計(jì)的重點(diǎn)是 _類(lèi)—的設(shè)計(jì),―類(lèi) 是用來(lái)創(chuàng)建對(duì)象的模板。
5、在非靜態(tài)成員方法中,可以使用關(guān)鍵字 _ 16、this__訪問(wèn)類(lèi)的其它非靜態(tài)成員。
6、當(dāng)一個(gè)對(duì)象被當(dāng)成垃圾從內(nèi)存中釋放時(shí),它的 __finalize()方法會(huì)被自動(dòng)調(diào)用。
7、被static關(guān)鍵字修飾的成員變量被稱(chēng)為 _靜態(tài)變量_,它可以被該類(lèi)所有的實(shí)例對(duì)象共享。
8、在一個(gè)類(lèi)中,除了可以定義屬性、方法,還可以定義類(lèi),這樣的類(lèi)被稱(chēng)為 _內(nèi)部類(lèi)。
9、在Java中,提供了一個(gè)」avadoc 命令,用于將程序中的文檔注釋提取出來(lái),生成 HTML格式
的幫助文檔。
10、所謂類(lèi)的封裝是指在定義一個(gè)類(lèi)時(shí),將類(lèi)中的屬性私有化,即使用 _private 關(guān)鍵字來(lái)修飾。
、判斷題
1、在定義一個(gè)類(lèi)的時(shí)候,如果類(lèi)的成員被 private 17、所修飾,該成員不能在類(lèi)的外部被直接訪問(wèn)。對(duì)
2、Java中的每個(gè)類(lèi)都至少有一個(gè)構(gòu)造方法,一個(gè)類(lèi)中如果沒(méi)有定義構(gòu)造方法,系統(tǒng)會(huì)自動(dòng)為這個(gè)類(lèi) 創(chuàng)建一個(gè)默認(rèn)的構(gòu)造方法。對(duì)
3、嚴(yán)明構(gòu)造方法時(shí),不能使用 private關(guān)鍵子修飾。錯(cuò)
4、類(lèi)中static修飾的變量或方法,可以使用類(lèi)名或?qū)ο蟮囊米兞吭L問(wèn)。對(duì)
5、方法內(nèi)部類(lèi)中不能訪問(wèn)外部類(lèi)的成員變量。 三、選擇題
1、類(lèi)的定義必須包含在以下哪種符號(hào)之間?
A、方括號(hào)[] B、花括號(hào){} C、
2、下面哪一個(gè)是正確的類(lèi)的聲明? D
A、 public void HH {…}
C、 public class void number{}
18、3、在以下什么情況下,構(gòu)造方法會(huì)被調(diào)用?
A、類(lèi)定義時(shí) B、創(chuàng)建對(duì)象時(shí)
4、下面對(duì)于構(gòu)造方法的描述,正確有哪些? A、方法名必須和類(lèi)名相同
錯(cuò)
B
雙引號(hào)D、圓括號(hào)()
B、public class Move() {…}
D、 public class Car {…}
B
C、調(diào)用對(duì)象方法時(shí) D、使用對(duì)象的變量時(shí)
(多選)ABC
B、方法名的前面沒(méi)有返回值類(lèi)型的聲明
C、在方法中不能使用 return語(yǔ)句返回一個(gè)值
D、當(dāng)定義了帶參數(shù)的構(gòu)造方法,系統(tǒng)默認(rèn)的不帶參數(shù)的構(gòu)造方法依然存在
5、使用this調(diào)用類(lèi)的構(gòu)造方法,下面的說(shuō)法正確的是? (多選)ACD (ABCD) 19、
A、使用this調(diào)用構(gòu)造方法的格式為 this([參數(shù)1,參數(shù)2…])
B、只能在構(gòu)造方法中使用 this調(diào)用其它的構(gòu)造方法
C、使用this調(diào)用其它構(gòu)造方法的語(yǔ)句必須放在第一行
D、不能在一個(gè)類(lèi)的兩個(gè)構(gòu)造方法中使用 this互相調(diào)用
6、下面哪些可以使用 static關(guān)鍵字修飾?(多選)AC(ACD)
A、成員變量 B、局部變量 C、成員方法 D、成員內(nèi)部類(lèi)
7、關(guān)于內(nèi)部類(lèi),下面說(shuō)法正確的是? (多選)ACD( ABCD )
A、成員內(nèi)部類(lèi)是外部類(lèi)的一個(gè)成員,可以訪問(wèn)外部類(lèi)的其它成員
B、外部類(lèi)可以訪問(wèn)成員內(nèi)部類(lèi)的成員
C、方法內(nèi)部類(lèi)只能在其定義的當(dāng)前方法中進(jìn)行實(shí)例化
20、
D、靜態(tài)內(nèi)部類(lèi)中可以定義靜態(tài)成員,也可以定義非靜態(tài)成員
8、下面對(duì)于單例設(shè)計(jì)模式的描述,正確的是? (多選)BCD(ABCD )
A、類(lèi)中定義一個(gè)無(wú)參的構(gòu)造方法,并且聲明為私有
B、在內(nèi)部創(chuàng)建一個(gè)該類(lèi)的實(shí)例對(duì)象,使用靜態(tài)變量引用該實(shí)例對(duì)象
C、使用private修飾靜態(tài)變量,禁止外界直接訪問(wèn)
D、定義靜態(tài)方法返回該類(lèi)實(shí)例
9、請(qǐng)先閱讀下面的代碼 D
public class Test {
public Test(){
System.out.println(" }
構(gòu)造方法一被調(diào)用了
");
public Test(int x){
this();
System. 21、out.println(" }
構(gòu)造方法二被調(diào)用了
");
public Test(boolean b){
this(1);
System.out.println(" }
構(gòu)造方法三被調(diào)用了
");
public static void main(String口 args) {
Test test = new Test(true);
上面程序的運(yùn)行結(jié)果為下列哪一項(xiàng)?
A、構(gòu)造方法一被調(diào)用了
C、構(gòu)造方法三被調(diào)用了
B、構(gòu)造方法二被調(diào)用了
D、以上三個(gè)選項(xiàng)之和
Inner,需要在main()方法中創(chuàng)建Inner類(lèi)實(shí)例對(duì)象,以下四種
10、Out 22、er類(lèi)中定義了一個(gè)成員內(nèi)部類(lèi)
方式哪一種是正確的? D
A、 Inner in = new Inner()
C、 Outer.Inner in = new Outer.Inner();
B、Inner in = new Outer.Inner();
D、Outer.Inner in = new Outer().new Inner();
四、程序分析題
閱讀下面的程序,分析代碼是否能夠編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。否則請(qǐng)說(shuō)明編 譯失敗的原因。
代碼一:不能,secret是私有成員,只能類(lèi)內(nèi)部訪問(wèn)(程序不能編譯通過(guò),因?yàn)樵陬?lèi)A中的成員變量secret 用priva 23、te修飾,所以在類(lèi) Testi中無(wú)法訪問(wèn))
class A { private int secret = 5;
}
public class Testi {
public static void main(String口 args) {
A a = new A();
System.out.println(a.secret++); } } 代碼二:250(程序不能編譯通過(guò),因?yàn)樵陟o態(tài)方法 method()中不能訪問(wèn)非靜態(tài)成員變量 x。)
public class Test2 { int x = 50; static int y =200 ; public static void m 24、ethod() {
System.out.println(x+y); } public static void main(String口 args) { Test2.method(); } }
代碼三:Inner為私有內(nèi)部類(lèi),不允許外部訪問(wèn) (inner)Inner inner = new Outer().new Inner();可以用外部
類(lèi)訪問(wèn)內(nèi)部類(lèi)
public class Outer {
public String name="Outer"; private class Inner {
String name="inner";
void showName(){
Syst 25、em.out.println(name); } } public static void main(String口 args) { Inner inner = new Outer().new Inner(); System.out.println(inner.name);
}
}
五、簡(jiǎn)答題
1、構(gòu)造方法和普通的成員方法有什么區(qū)別?
構(gòu)造方法是類(lèi)的一個(gè)特殊成員,它會(huì)在類(lèi)實(shí)例化對(duì)象時(shí)被自動(dòng)調(diào)用。而普通方法只有在使用的時(shí)候才 會(huì)被調(diào)用。在定義構(gòu)造方法時(shí)要求方法名與類(lèi)名相同、在方法名的前面沒(méi)有返回值類(lèi)型的聲明、在方法中 不能使用return語(yǔ)句返回一個(gè)值
2、單例設(shè)計(jì)模式具備哪些特點(diǎn)?
26、
單例模式可以保證在整個(gè)程序運(yùn)行期間針對(duì)該類(lèi)只存在一個(gè)實(shí)例對(duì)象。
六、編程題
1、請(qǐng)按照以下要求設(shè)計(jì)一個(gè)學(xué)生類(lèi) Student,并進(jìn)行測(cè)試。
要求如下:
1) Student類(lèi)中包含姓名、成績(jī)兩個(gè)屬性
2)分別給這兩個(gè)屬性定義兩個(gè)方法,一個(gè)方法用于設(shè)置值,另一個(gè)方法用于獲取值 ^
3) Student類(lèi)中定義一個(gè)無(wú)參的構(gòu)造方法和一個(gè)接收兩個(gè)參數(shù)的構(gòu)造方法,兩個(gè)參數(shù)分別為姓名和 成績(jī)屬性賦值
4)在測(cè)試類(lèi)中創(chuàng)建兩個(gè) Student對(duì)象,一個(gè)使用無(wú)參的構(gòu)造方法,然后調(diào)用方法給姓名和成績(jī)賦值,
一個(gè)使用有參的構(gòu)造方法,在構(gòu)造方法中給姓名和成績(jī)賦值
2、定義一個(gè)Father和Chil 27、d類(lèi),并進(jìn)行測(cè)試。
要求如下:
1) Father類(lèi)為外部類(lèi),類(lèi)中定義一個(gè)私有的 String類(lèi)型的屬性name, name的值為"zhangjun”。
2) Child類(lèi)為Father類(lèi)的內(nèi)部類(lèi),其中定義一個(gè) introFather()方法,方法中調(diào)用 Father類(lèi)的name
屬性。
3)定義一個(gè)測(cè)試類(lèi) Test,在Test類(lèi)的main()方法中,創(chuàng)建 Child對(duì)象,并調(diào)用introFather ()方法。
第4章面向?qū)ο?下)
一、填空題
1、在Java語(yǔ)言中,允許使用已存在的類(lèi)作為基礎(chǔ)創(chuàng)建新的類(lèi),這種技術(shù)我們稱(chēng)為繼承 。
2、一個(gè)類(lèi)如果實(shí)現(xiàn)一個(gè)接口,那么它就需要實(shí)現(xiàn) 28、接口中定義的全部 一方法,否則該類(lèi)就必須定
義成_抽象類(lèi)。
_import 關(guān)鍵字。
3、在程序開(kāi)發(fā)中,要想將一個(gè)包中的類(lèi)導(dǎo)入到當(dāng)前程序中,可以使用
4、一個(gè)類(lèi)可以從其它的類(lèi)派生出來(lái),派生出來(lái)的類(lèi)稱(chēng)為 —子類(lèi),用于派生的類(lèi)稱(chēng)為 —基類(lèi)
或者—父類(lèi)。
5、 JDK中定義了大量的異常類(lèi),這些類(lèi)都是 .Exception 類(lèi)的子類(lèi)或者間接子類(lèi)。
6、定義一個(gè)Java類(lèi)時(shí),如果前面加使用 丁inal 關(guān)鍵字修飾,那么該類(lèi)不可以被繼承。
7、如果子類(lèi)想使用父類(lèi)中的成員,可以通過(guò)關(guān)鍵字 __super 引用父類(lèi)的成員。
8、在Java語(yǔ)言中,所有的類(lèi)都直接或間接繼承自 .Object 類(lèi) 29、。
9、異常的捕獲通常由 try、catch兩部分組成,_try 代碼塊用來(lái)存放可能發(fā)生異常, _catch
代碼塊用
來(lái)處理產(chǎn)生的異常。
10、在Java語(yǔ)言中,要想是將一個(gè)已編譯的類(lèi)打包成 jar文件,可以使用的命令是 jar-cvf ,要
想在命令行窗口運(yùn)行jar文件,可以使用的命令是 __java-jar。
、判斷題
1、抽象方法必須定義在抽象類(lèi)中,所以抽象類(lèi)中的方法都是抽象方法。錯(cuò)
2、Java中被final關(guān)鍵字修飾的變量,不能被重新賦值。對(duì)
3、不存在繼承關(guān)系的情況下,也可以實(shí)現(xiàn)方法重寫(xiě)。錯(cuò)
4、package聲明語(yǔ)句應(yīng)當(dāng)為 Java源文件中的第一條語(yǔ)句。對(duì) 30、
5、接口中只能定義常量和抽象方法。錯(cuò) (^^)
三、選擇題
1、在類(lèi)的繼承關(guān)系中,需要遵循以下哪個(gè)繼承原則? B
A、多重 B、單一 C、雙重 D、不能繼承
2、在Java語(yǔ)言中,以下哪個(gè)關(guān)鍵字用于在方法上聲明拋出異常? C
A.try
B.catch
C.throws
D.throw
3、關(guān)于super關(guān)鍵字以下說(shuō)法哪些是正確的?(多選) ABD (ABC)
A、super關(guān)鍵字可以調(diào)用父類(lèi)的構(gòu)造方法
B、super關(guān)鍵字可以調(diào)用父類(lèi)的普通方法
C、super與this不能同時(shí)存在于同一個(gè)構(gòu)造方法中
D、super與this可以同時(shí)存在于同一個(gè)構(gòu)造方法中
31、4、以下說(shuō)法哪些是正確的?(多選) ABCD
A、Java語(yǔ)言中允許一個(gè)類(lèi)實(shí)現(xiàn)多個(gè)接口
B、Java語(yǔ)言中不允許一個(gè)類(lèi)繼承多個(gè)類(lèi)
C、Java語(yǔ)言中允許一個(gè)類(lèi)同時(shí)繼承一個(gè)類(lèi)并實(shí)現(xiàn)一個(gè)接口
D、Java語(yǔ)言中允許一個(gè)接口繼承一個(gè)接口
5、類(lèi)中的一個(gè)成員方法被下面哪個(gè)修飾符修飾,該方法只能在本類(lèi)被訪問(wèn)? C
A、public B、 protected C、 private D、default
6、關(guān)于抽象類(lèi)的說(shuō)法哪些是正確的?(多選) AC
A、抽象類(lèi)中可以有非抽象方法。
B、如果父類(lèi)是抽象類(lèi),則子類(lèi)必須重寫(xiě)父類(lèi)所有的抽象方法。
C、不能用抽象類(lèi)去創(chuàng)建對(duì)象。
D、接口和抽象類(lèi) 32、是同一個(gè)概念。
7、在Java中,要想讓一個(gè)類(lèi)繼承另一個(gè)類(lèi),可以使用以下哪個(gè)關(guān)鍵字? C
A、 inherits B、 implements C、 extends D、 modifies
8、System類(lèi)位于以下哪個(gè)包中? D
A、java.io B、java.util C、java.awt D、java.lang
9、已知類(lèi)的繼承關(guān)系如下: A
class Employee;
class Manager extends Employee;
class Director extends Employee; 則以下語(yǔ)句能通過(guò)編譯的有哪些?
A、 Employee e=new 33、Manager。; B、 Director d=new Manager。;
C、 Director d=new Employee。; D、Manager m=new Director();
10、編譯運(yùn)行下面的程序,結(jié)果是什么? B
public class A {
public static void main(String口 args) {
B b = new B();
b.test();
void test() {
System.out.print("A");
博學(xué)谷一一讓IT教學(xué)更簡(jiǎn)單,讓IT學(xué)習(xí)更有效 }
}
class B extends A { void 34、 test() { super.test(); System.out.print("B");
} }
A、產(chǎn)生編譯錯(cuò)誤 B、代碼可以編譯運(yùn)行,并輸出結(jié)果 AB
C、代碼可以編譯運(yùn)行,但沒(méi)有輸出 D、編譯沒(méi)有錯(cuò)誤,但會(huì)產(chǎn)生運(yùn)行時(shí)異常
四、分析題
閱讀下面的程序,分析代碼是否能編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。如果不能編譯通
過(guò),請(qǐng)說(shuō)明原因。
代碼一:進(jìn)入catch代碼塊
進(jìn)入finally代碼塊(程序編譯能通過(guò), 這是因?yàn)閕nt x = 2 / 0; System.out.println(x);這兩條語(yǔ)句使用了 try 塊,捕獲了程序因?yàn)槌?0而產(chǎn)生的異常情況, 之后 35、程序會(huì)繼續(xù)向下執(zhí)行, 輸出“進(jìn)入catch代碼塊”,“進(jìn)
入finally代碼塊”。)
public class Test01 {
public static void main(String口 args) { try {
int x = 2 / 0;
System.out.println(x); } catch (Exception e) {
System.out.println(" 進(jìn)入 catch 代碼塊");
} finally {
System.out.println(" 進(jìn)入 finally 代碼塊");
} } }
代碼二:不能,final修飾shout,不能 36、被重寫(xiě)(程序編譯不通過(guò),這是因?yàn)樵诔绦蛑惺褂昧?final關(guān)鍵字
修飾Animal類(lèi),使得Animal類(lèi)不能被繼承。shout()方法中同樣使用了 final關(guān)鍵字,使得該方法不能被重
寫(xiě)。)
final class Animal {
public final void shout() { // 程序代碼
}
}
class Dog extends Animal { public void shout() { // 程序代碼 }
}
class Test02 {
public static void main(String[] args) {
博學(xué)谷一一讓IT教學(xué)更簡(jiǎn)單, 37、讓IT學(xué)習(xí)更有效
Dog dog=new Dog();
}
}
代碼三:動(dòng)物叫!
汪汪……
class Animal {
void shout() {
System.out.println(" 動(dòng)物叫!");
}
}
class Dog extends Animal {
void shout() {
super.shout();
System.out.println(" 汪汪 ");
}
}
public class Test03 {
public static void main(String口 args) {
Animal animal = new 38、 Dog();
animal.shout();
代碼四:不能,Dog沒(méi)有實(shí)現(xiàn)Animal所有方法,Dog為抽象類(lèi)不能創(chuàng)建對(duì)象(程序編譯不通過(guò),因?yàn)?接口中定義的方法不能有方法體,所以定義的 eat()方法是錯(cuò)誤的。接口中的方法必須在子類(lèi)中全部實(shí)現(xiàn),
由于run()方法在子類(lèi)中并沒(méi)有重新實(shí)現(xiàn),所以這也是錯(cuò)誤的。 )
interface Animal {
void breathe();
void run();
void eat(){};
}
class Dog implements Animal {
public void breathe() {
System.out.pri 39、ntln("I m breathing")
} public void eat() { System.out.println("I m eathing")
} } public class test04 {
public static void main(String [] args) {
Dog dog = new Dog();
dog.breathe();
dog.eat();
}
}
五、簡(jiǎn)答題
1、什么是方法重寫(xiě)?
在繼承關(guān)系中,子類(lèi)的方法與父類(lèi)的某一方法具有相同的方法名、返回類(lèi)型和參數(shù)列表,則稱(chēng)子類(lèi)的 該方法重寫(xiě)(覆蓋)父類(lèi)的方法。
2、什么是多態(tài)?
多 40、態(tài)意味著一個(gè)對(duì)象有著多種形態(tài),可以在特定的情況下,表現(xiàn)不同的狀態(tài),從而對(duì)應(yīng)著不同的屬性和方 法。簡(jiǎn)單的說(shuō),多態(tài)就是使用父類(lèi)類(lèi)型的變量引用子類(lèi)對(duì)象,根據(jù)被引用子類(lèi)對(duì)象的特性,程序會(huì)得到不 同的運(yùn)行效果。
3、抽象類(lèi)和接口的區(qū)別?
在Java中,使用abstract關(guān)鍵字修飾的類(lèi)稱(chēng)之為抽象類(lèi)。抽象類(lèi)是不能被實(shí)例化的,通常需要寫(xiě)一個(gè) 子類(lèi)來(lái)繼承抽象類(lèi),同時(shí)實(shí)例化子類(lèi)來(lái)獲得該類(lèi)的對(duì)象。抽象類(lèi)通常用于表示一種抽象的概念。 接口可以說(shuō)是一種特殊的抽象類(lèi),接口中只能定義常量和抽象方法。由于接口的特殊性,在定義 時(shí)需要使用interface關(guān)鍵字。
六、編程題
請(qǐng)按照題目的要求編寫(xiě)程序并給出運(yùn)行結(jié)果。 41、
1、設(shè)計(jì)一個(gè)學(xué)生類(lèi) Student和它的一個(gè)子類(lèi) Undergraduate,要求如下:
1) Student類(lèi)有name(姓名)、和age(年齡)屬性,一個(gè)包含兩個(gè)參數(shù)的構(gòu)造方法,用于給 name和 age屬性賦值,一個(gè) show()方法打印Student的屬性信息
2)本科生類(lèi)Undergraduate增加一個(gè)degree(學(xué)位)屬性。有一個(gè)包含三個(gè)參數(shù)的構(gòu)造方法, 前兩個(gè)
參數(shù)用于給繼承的 name和age屬性賦值,第三個(gè)參數(shù)給degree專(zhuān)業(yè)賦值,一個(gè)show()方法用
于打印Undergraduate的屬性信息
3)在測(cè)試類(lèi)中分別創(chuàng)建 Student對(duì)象和Undergr 42、aduate對(duì)象,調(diào)用它們的 show()。
2、設(shè)計(jì)一個(gè) Shape接口和它的兩個(gè)實(shí)現(xiàn)類(lèi) Square和Circle ,要求如下:
1) Shape接口中有一個(gè)抽象方法 area(),方法接收有一個(gè)double類(lèi)型的參數(shù),返回一個(gè)double類(lèi) 型的結(jié)果
2) Square和Circle中實(shí)現(xiàn)了 Shape接口的area()抽象方法,分別求正方形和圓形的面積并返回
在測(cè)試類(lèi)中創(chuàng)建 Square和Circle對(duì)象,計(jì)算邊長(zhǎng)為 2的正方形面積和半徑為 3的圓形面積
3、自定義一個(gè)異常類(lèi) NoThisSoundException和Player類(lèi),在Player的play()方法中使用自定 43、義異常,
要求入下:
1) NoThisSongException繼承Exception類(lèi),類(lèi)中有一個(gè)無(wú)參和一個(gè)接收一個(gè) String類(lèi)型參數(shù)的
構(gòu)造方法,構(gòu)造方法中都使用 super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造方法。
2) Player類(lèi)中定義一個(gè)play(int index)方法,方法接收一個(gè)int類(lèi)型的參數(shù),表示播放歌曲的索 弓I,當(dāng)index>10時(shí),paly()方法用throw關(guān)鍵字拋出 NoThisSongException異常,創(chuàng)建異常對(duì) 象時(shí),調(diào)用有參的構(gòu)造方法,傳入“您播放的歌曲不存在” 。
3)在測(cè)試類(lèi)中創(chuàng)建 Player對(duì)象,并調(diào)用play()方法測(cè)試自定義的 NoTh 44、isSongException異常,使 用try…catch語(yǔ)句捕獲異常,調(diào)用NoThisSongException的getMessage()方法打印出異常信息。
第5章多線程
、填空題
1、一個(gè)應(yīng)用程序中有多條并發(fā)執(zhí)行的線索,每條線索都被稱(chēng)作一個(gè)線程 ,它們會(huì)交替執(zhí)行, 彼此
間可以進(jìn)行_通信。
2、在實(shí)現(xiàn)多線程的程序時(shí)有兩種方式, 一是通過(guò)繼_Thread 承類(lèi),二是通過(guò)實(shí)現(xiàn) Runnable
接口。
3、yield()方法只能讓 相同優(yōu)先級(jí)或者更高優(yōu)先級(jí) 、處于—就緒 狀態(tài)的線程獲得運(yùn)行的機(jī)會(huì)。
4、在Java語(yǔ)言中,同步方法需要用到關(guān)鍵字 _synchronized., 45、對(duì)于同步方法而言無(wú)需指定同步鎖,
它的同步
鎖是方法所在的_對(duì)象,也就是_this(關(guān)鍵字)。
5、在多任務(wù)系統(tǒng)中,每個(gè)獨(dú)立執(zhí)行的程序稱(chēng)之為 _線程,也就是“正在運(yùn)行的程序”。
6、線程的整個(gè)生命周期分為五個(gè)階段,分別是 _新建、就緒、_運(yùn)行、_阻塞、 和死亡。
7、線程的優(yōu)先級(jí)用1~10之間的整數(shù)來(lái)表示,其中 __10—代表優(yōu)先級(jí)最高,__1―代表優(yōu)先級(jí)最低。
8、在Thread類(lèi)中,提供了一個(gè) start()方法,該方法用于啟動(dòng)線程 ,當(dāng)新線程啟動(dòng)后,系統(tǒng)會(huì) 自動(dòng)調(diào)用 —run()方法。
9、要想解決線程間的通信問(wèn)題,可以使用 —wait()、notify()、_notify 46、ALL()方法。
10、要將某個(gè)線程設(shè)置為后臺(tái)線程,需要調(diào)用該線程的 _setDaemon(true)方法,該方法必須在
_start()方法之前調(diào)用。 二、判斷題
1、當(dāng)我們創(chuàng)建一個(gè)線程對(duì)象時(shí),該對(duì)象表示的線程就立即開(kāi)始運(yùn)行。錯(cuò)
2、如果前臺(tái)線程全部死亡,后臺(tái)線程也會(huì)自動(dòng)死亡。對(duì)
3、同步代碼塊中的鎖對(duì)象可以是任意類(lèi)型的對(duì)象。對(duì)
4、靜態(tài)方法不能使用 synchronized關(guān)鍵字來(lái)修飾。錯(cuò)
5、線程結(jié)束等待或者阻塞狀態(tài)后,會(huì)進(jìn)入運(yùn)行狀態(tài)。錯(cuò) 三、選擇題
1、Thread類(lèi)位于下列哪個(gè)包中? B
A、java.io B、java.lang C、java.util D、jav 47、a.awt
2、關(guān)于線程的創(chuàng)建過(guò)程,下面四種說(shuō)法正確的有哪些? (多選)AC
A、定義Thread類(lèi)的子類(lèi),重寫(xiě)Thread類(lèi)的run()方法,創(chuàng)建該子類(lèi)的實(shí)例對(duì)象, 調(diào)用對(duì)象的start()
方法
B、定義Thread類(lèi)的子類(lèi),重寫(xiě)Thread類(lèi)的run()方法,創(chuàng)建該子類(lèi)的實(shí)例對(duì)象,調(diào)用對(duì)象的 run()
方法
C、定義一個(gè)實(shí)現(xiàn) Runnable接口的類(lèi)并實(shí)現(xiàn)run()方法,創(chuàng)建該類(lèi)實(shí)例對(duì)象,將其作為參數(shù)傳遞給 Thread類(lèi)的構(gòu)造方法來(lái)創(chuàng)建 Thread對(duì)象,調(diào)用 Thread對(duì)象的start()方法
D、定義一個(gè)實(shí)現(xiàn) Runnable接口的類(lèi)并實(shí)現(xiàn)run()方法,創(chuàng)建該類(lèi) 48、對(duì)象,然后調(diào)用 run()方法
3、對(duì)于通過(guò)實(shí)現(xiàn) Runnable接口創(chuàng)建線程,下面說(shuō)法正確的有哪些? (多選)ABC
A、適合多個(gè)相同程序代碼的線程去處理同一個(gè)資源的情況
B、把線程同程序代碼、數(shù)據(jù)有效的分離,很好的體現(xiàn)了面向?qū)ο蟮脑O(shè)計(jì)思想
C、可以避免由于 Java的單繼承帶來(lái)的局限性
D、編寫(xiě)簡(jiǎn)單,可以不通過(guò) Thread類(lèi)直接創(chuàng)建線程
4、對(duì)于線程的生命周期,下面四種說(shuō)法正確的有哪些? (多選)ABC (BC)
A、調(diào)用了線程的start()方法,該線程就進(jìn)入運(yùn)行狀態(tài) (就緒,還要獲得 CPU使用權(quán))
B、線程的run()方法運(yùn)行結(jié)束或被未 catch的Interrup 49、tedException等異常終結(jié),那么該線程進(jìn)入死
亡狀態(tài)
Thread對(duì)象,在沒(méi)有被垃圾回收器回收之前
C、線程進(jìn)入死亡狀態(tài),但是該線程對(duì)象仍然是一個(gè)
仍可以像引用其它對(duì)象一樣引用它
D、線程進(jìn)入死亡狀態(tài)后,調(diào)用它的 start()方法仍然可以重新啟動(dòng)
5、
對(duì)于死鎖的描述,下面四種說(shuō)法正確有哪些?
(多選)AB (ABD)
A、
B、
C、
D、
當(dāng)兩個(gè)線程互相等待對(duì)方釋放同步鎖時(shí)會(huì)發(fā)生死鎖
Java虛擬機(jī)沒(méi)有檢測(cè)和處理死鎖的措施
一旦出現(xiàn)死鎖,程序會(huì)發(fā)生異常
處于死鎖狀態(tài)的線程處于阻塞狀態(tài),無(wú)法繼續(xù)運(yùn)行
6、
卜面四個(gè)選項(xiàng)中,哪些是線程進(jìn)入阻 50、塞狀態(tài)的原因?
(多選)ABC
A、線程試圖獲取某個(gè)對(duì)象的同步鎖,而該鎖被其它線程持有
B、線程調(diào)用了另一個(gè)線程的 join()方法
C、當(dāng)線程調(diào)用了一個(gè)阻塞式的 IO方法
D、線程調(diào)用了 setDaemon(boolean b)方法
7、
線程調(diào)用sleep()方法后,該線程將進(jìn)入以下哪種狀態(tài)?
A、就緒狀態(tài)
C、阻塞狀態(tài)
B、運(yùn)行狀態(tài)
D、死亡狀態(tài)
8、
在以下哪種情況下,線程進(jìn)入就緒狀態(tài)?
A、線程調(diào)用了 sleep()方法時(shí)
C、線程調(diào)用了 yield()方法時(shí)
D
B、線程調(diào)用了
D、線程調(diào)用了
9、
卜面四個(gè)選項(xiàng)中,對(duì)線程同步的目的描述正 51、確的有哪些?
join()方法(終止) notify()方法??
(多選)AD (AB)
A、鎖定資源,使同一時(shí)刻只有一個(gè)線程去訪問(wèn)它,防止多個(gè)線程操作同一個(gè)資源引發(fā)錯(cuò)誤
B、提高線程的執(zhí)行效率
C、讓線程獨(dú)占一個(gè)資源
D、讓多個(gè)線程同時(shí)使用一個(gè)資源
10、對(duì)于wait()方法,下面說(shuō)法正確的是? 侈選)ABCD
A、wait()方法的調(diào)用者是同步鎖對(duì)象
B、wait()方法使線程進(jìn)入等待狀態(tài)
C、調(diào)用同一鎖對(duì)象的 notify()或notifyAll()方法可以喚醒調(diào)用 wait()方法等待的線程
D、調(diào)用wait()方法的線程會(huì)釋放同步鎖對(duì)象 四、程序分析題
閱 52、讀下面的程序,分析代碼是否能編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。如果不能編譯通
過(guò),請(qǐng)說(shuō)明原因。
1 .代碼一:不能,RunHandler沒(méi)有繼承Thread,不能用Thread創(chuàng)建對(duì)象(程序不能編譯通過(guò),因?yàn)?
RunHandler類(lèi)沒(méi)有實(shí)現(xiàn) Runnable接口,因此RunHandler的實(shí)例對(duì)象不能作為參數(shù)傳遞給 Thread的構(gòu)造方
法。)
class RunHandler {
public void run(){
System.out.println("run");
}
}
public class Test {
public static void ma 53、in(String [] args) {
博學(xué)谷一一讓IT教學(xué)更簡(jiǎn)單,讓IT學(xué)習(xí)更有效
Thread t = new Thread(new RunHandler()); t.start();
} }
2 .代碼二:this is run (程序不能編譯通過(guò),因?yàn)?Thread的子類(lèi)A重寫(xiě)的run()方法的訪問(wèn)級(jí)別不能低 于父類(lèi)run()方法的。訪問(wèn)級(jí)別)
public class A extends Thread{ protected void run() {
System.out.println("this is run()"); }
public static void 54、main(String口 args) { A a = new A();
a.start(); }
}
3 .代碼三:Exception (程序不能編譯通過(guò),因?yàn)橥椒椒ㄖ姓{(diào)用 wait()方法的對(duì)象必須為同步鎖對(duì)象 )
public class Test{
private Object obj=new Object(); public synchronized void a(){ try {
obj.wait() ;改 this.wait() System.out.println("waiting");
} catch (InterruptedException e) { Sys 55、tem.out.println("Exception");
} }
public static void main(String口 args) { new Test().a();
} }
4) 為了使下面的程序能夠輸出" Thread is running”,請(qǐng)?jiān)谠诳崭裉幪钌舷鄳?yīng)的代碼。 public class B implements Runnable {
public static void main(String口 args) { Thread t = new Thread(new B()); __t.start() // 此處填空
}
public void run() 56、 {
System.out.println("Thread is running"); } public void go() {
start(1); }
public void start(int i) {
博學(xué)谷一一讓IT教學(xué)更簡(jiǎn)單,讓IT學(xué)習(xí)更有效
}
}
五、簡(jiǎn)答題
1、java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?請(qǐng)舉例說(shuō)明。
一種是繼承java.lang包下的Thread類(lèi),覆寫(xiě)Thread類(lèi)的run()方法,在run()方法中實(shí)現(xiàn)運(yùn)行在線程上 的代碼。
new Thread() {
public void run(){}
}.start();
另一種就是實(shí) 57、現(xiàn)java.lang.Runnable接口,同樣是在run()方法中實(shí)現(xiàn)運(yùn)行在線程上的代碼。 new Thread(new Runnable(){
public void run(){}
}).start()
2、sleep()和 wait()有什么區(qū)別?
調(diào)用sleep()方法,正在執(zhí)行的線程主動(dòng)讓出 CPU去執(zhí)行其他線程,在 sleep()方法指定的時(shí)間過(guò)后, CPU
才會(huì)回到這個(gè)線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進(jìn)入了同步鎖, sleep()方法并不會(huì)釋放鎖,即使當(dāng)前線
程使用sleep()方法讓出了 CPU,但其它被同步鎖擋住了的線程也無(wú)法得到執(zhí)行。 wait()在一個(gè)已經(jīng)進(jìn) 58、入了
同步鎖的線程內(nèi)進(jìn)行調(diào)用, 讓當(dāng)前線程暫時(shí)讓出同步鎖, 以便其它正在等待此鎖的線程可以得到同步鎖并
運(yùn)行。當(dāng)其它線程調(diào)用了 notify()方法后,調(diào)用 wait()方法的線程就會(huì)解除 wait狀態(tài),當(dāng)再次獲得同步鎖
后,程序可以繼續(xù)向下執(zhí)行。
六、編程題
請(qǐng)按照題目的要求編寫(xiě)程序并給出運(yùn)行結(jié)果。
1、通過(guò)繼承Thread類(lèi)的方式創(chuàng)建兩個(gè)線程,在 Thread構(gòu)造方法中指定線程的名字,并將這兩個(gè)線程
的名字打印出來(lái)。
2、通過(guò)實(shí)現(xiàn)Runnable接口的方式創(chuàng)建一個(gè)新線程,要求 main線程才T印100此次"main”,新線程打
印 50 次"new"。
3、模擬傳智播客 59、的三個(gè)老師同時(shí)分發(fā) 80份學(xué)習(xí)筆記,每個(gè)老師相當(dāng)于一個(gè)線程。
4、編寫(xiě)10個(gè)線程,第一個(gè)線程從 1加到10,第二個(gè)線程從11加到20...第十個(gè)線程從91加到100,
最后再把十個(gè)線程結(jié)果相加。
第 6章 JavaAPI
一、填空題
1、在Java中定義了兩個(gè)類(lèi)來(lái)封裝對(duì)字符串的操作,它們分別是 String_和_StringBuffer。
2、Java 中的操作日期的類(lèi)有 _Date、_Calendar、DateFormat 等。
3、在程序中若想取得一個(gè) Runtime實(shí)例,則可以調(diào)用 Runtime類(lèi)的靜態(tài)方法getRnutime()。
4、Math類(lèi)中用于計(jì)算所傳遞參數(shù)平 60、方根的方法是 _sqrt()。
5、Java中專(zhuān)門(mén)用于將日期格式化為字符串的類(lèi)是 _DateFormat。
6、Math類(lèi)中有兩個(gè)靜態(tài)常量 PI和E,分別代表數(shù)學(xué)常量 _兀 和_e―。
7、Java中的用于產(chǎn)生隨機(jī)數(shù)的類(lèi)是 _Random,它位于java.util 包中。
8、String類(lèi)中用于返回字符串字符個(gè)數(shù)的方法是 _length()。
9、System類(lèi)中所提供的屬性和方法都是 _靜態(tài)―的,想要引用這些屬性和方法,直接使用 System類(lèi)
調(diào)用即可。
10、已知 sb 為 StringBuffer 的一個(gè)實(shí)例,且 sb.toString()的值為"abcde ", 則執(zhí) 61、行 sb. reverse。后, sb.toString()的值為 _"edcba_"。
二、判斷題
1、String對(duì)象和StringBuffer對(duì)象都是字符串變量,創(chuàng)建后都可以修改。錯(cuò)
2、用運(yùn)算符“==”比較字符串對(duì)象時(shí),如果兩個(gè)字符串的值相同,結(jié)果為 true。錯(cuò)
3、System類(lèi)中的currentTimeMillis()方法返回一個(gè)long類(lèi)型的值。對(duì)
4、Date、Calendar 以及 DateFormat 類(lèi)都位于 java.util 包中。錯(cuò) 分另1J java.util.Date java.util.Calendar
java.text.DateFormat
62、
5、String 類(lèi)的方法 replace (CharSequence srt1, CharSequence srt2兩回一個(gè)新的字符串, 它是通過(guò)用 srt2
替換此字符串中出現(xiàn)的所有 srt1得到的。對(duì)
三、選擇題。
1、先閱讀下面的程序片段:C
String str = "abccdefcdh";
String口 arr = str.split("c");
System.out.println(arr.length);
程序執(zhí)行后,打印的結(jié)果是幾?
A、2個(gè) B、 3個(gè) C、4個(gè) D、5個(gè)
2、以下都是Math類(lèi)的常用方法,其中用于計(jì)算絕對(duì)值的方法是哪個(gè)? C
A、 63、ceil() B、floor() C、abs() D、random()
3、Random對(duì)象能夠生成以下哪種類(lèi)型的隨機(jī)數(shù)? D
A、int B、string C、double D、A 和 C
4、String s = "abcdedcba";則s.substring(3, 4)返回的字符串是以下選項(xiàng)中的哪個(gè)? C
A、cd B、de C、d D、e
5、假若indexOf()方法未能找到所指定的子字符串,則返回以下選項(xiàng)中的哪個(gè)? C
A、 false B、 0 C、-1 D、以上答案都不對(duì)
6、要產(chǎn)生[20, 999]之間的隨機(jī)整數(shù)可以使用以下哪個(gè)表達(dá)式? B
A. (int) 64、(20+Math.random()*97)
B. 20+(int)(Math.random()*980)
C. (int)Math.random()*999
D. 20+(int)Math.random()*980
7、以下Math類(lèi)的方法中,-4.4通過(guò)哪個(gè)方法運(yùn)算后,結(jié)果為 -5.0? D(C)
A. round()四舍五入 B. min() C. floor()小于參數(shù)最大整數(shù) D. ceil()大于參數(shù)最小整數(shù)
8、下面的程序段執(zhí)行后,輸出的結(jié)果是以下哪個(gè)選項(xiàng)? A
StringBuffer buf=new StringBuffer("Beijing2008");
bu 65、f.insert(7,"@");
System.out.println(buf.toString());
A、Beijing@2008 B、@Beijing2008 C、Beijing2008@ D、Beijing#2008
9、閱讀下面的程序:A
public class test {
public static void main(String args[]) {
int i;
float f = 2.3f;
double d = 2.7;
i = ((int)Math.ceil(f)) * ((int)Math.round(d));
System.out.printl 66、n(i); }
}
程序執(zhí)行后,運(yùn)行結(jié)果為以下哪個(gè)選項(xiàng)?
A、9 B、5 C、6 D、6.1
10、先閱讀下面的程序片段: B
String str1=new String("java");
String str2=new String("java");
StringBuffer str3=new StringBuffer("java");
對(duì)于上述定義的變量,以下表達(dá)式的值為 true的是哪個(gè)?
A、str1==str2; B、str1.equals(str2); C、str1==str3; D、以上都不對(duì) 四、程序分析題。
閱讀下面的程序,分析代碼是否能編譯通過(guò),如果能編譯通過(guò),請(qǐng)列出運(yùn)行的結(jié)果。如果不能編譯通 過(guò),請(qǐng)說(shuō)明原因。
代碼一:5
7.0
-8.0
-5
8.1
-6.1
public class A {
public static void main(String口 args) {
System.out.println(Math.abs(-5));
System.out.println(Math.ceil(6.6));
S
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中西方家庭教育的對(duì)比ppt課件
- 《運(yùn)籌學(xué)教程》第五版運(yùn)籌學(xué)6對(duì)策論矩陣對(duì)策課件
- (部編版)統(tǒng)編版四年級(jí)語(yǔ)文下冊(cè)第2課《鄉(xiāng)下人家》ppt課件
- 全等三角形1--公開(kāi)課一等獎(jiǎng)ppt課件
- 《會(huì)跳舞樹(shù)葉娃娃》課件
- 9兒童詩(shī)兩首_人教版五年級(jí)的語(yǔ)文下冊(cè)課件
- 綠色植物是食物之源(我的課件)0
- 河南專(zhuān)版2022春八年級(jí)語(yǔ)文下冊(cè)第四單元16慶祝奧林匹克運(yùn)動(dòng)復(fù)興25周年習(xí)題課件新人教版
- 全國(guó)xx杯說(shuō)課大賽機(jī)械類(lèi)一等獎(jiǎng)作品:鉗工車(chē)模的制作說(shuō)課ppt課件
- 六年級(jí)下冊(cè)數(shù)學(xué)ppt課件-總復(fù)習(xí)(1)數(shù)的認(rèn)識(shí)-整數(shù)∣北師大版
- 牛頓第二定律優(yōu)秀完整公開(kāi)課ppt課件
- 調(diào)脂與卒中防治課件
- 點(diǎn)到平面的距離課件
- 聚焦新醫(yī)改形勢(shì)下的醫(yī)院發(fā)展戰(zhàn)略
- 四肢血管超聲基礎(chǔ)