JAVASETEST0814
JAVASE0814
使用 Java語(yǔ)言編寫的源程序保存時(shí)的文件擴(kuò)展名是(B)。?
A..class? ?**B..java**? ?C..cpp? ? ?D..txt
2.設(shè)有數(shù)組的定義 int[] a = new int[3] ,則下面對(duì)數(shù)組元素的引用錯(cuò)誤的 是(C )。
A.a[0];? ? ? B.a[a.length-1];? **C.a[3]; // 012**? ? D.int i=1; a[i];
3.在同一個(gè)類的定義中可以有兩個(gè)同名函數(shù),這種現(xiàn)象稱為函數(shù)(D )。 A.封裝? ? ?B.繼承C.覆蓋? ? ?**D.重載**??
4. 在類的定義中構(gòu)造函數(shù)的作用是( D)。
A.保護(hù)成員變量? ? ?B.讀取類的成員變量? C.描述類的特征? ? ?**D.初始化成員變量**
5.類與對(duì)象的關(guān)系是( A)。**A.類是對(duì)象的抽象**? ? ?B.對(duì)象是類的抽象C.對(duì)象是類的子類? ? ? D.類是對(duì)象的具體實(shí)例?
6.下面哪一個(gè)是 Java中不合法的標(biāo)識(shí)在(D )。
A.$persons? ? ?B.twoNum C._myVar? ? ?D.*point
```java
?Java 中,標(biāo)識(shí)符是用來(lái)命名變量、方法、類等的名稱。合法的標(biāo)識(shí)符必須遵循一些命名規(guī)則,而不合法的標(biāo)識(shí)符則會(huì)導(dǎo)致編譯錯(cuò)誤。
?以下是一些不合法的標(biāo)識(shí)符情況:
//以數(shù)字開頭: 標(biāo)識(shí)符不能以數(shù)字開頭。
例如,2variable 是不合法的。
//包含空格或特殊字符: 標(biāo)識(shí)符不能包含空格或特殊字符(除了下劃線 _ 和美元符號(hào) $)。
例如,my variable、hello-world 是不合法的。
//Java 關(guān)鍵字: 某些單詞在 Java 中具有特殊含義,被稱為關(guān)鍵字,不能用作標(biāo)識(shí)符。
例如,class、public、while 是不合法的。
//與現(xiàn)有類名沖突: 標(biāo)識(shí)符不能與 Java 類庫(kù)中已有的類名相同。
例如,您不能將自己的類命名為 String、ArrayList 等。
//大小寫敏感: 標(biāo)識(shí)符是大小寫敏感的,這意味著大寫和小寫字母被視為不同的字符。
例如,myVariable 和 myvariable 是兩個(gè)不同的標(biāo)識(shí)符。
//長(zhǎng)度無(wú)限制: 理論上,標(biāo)識(shí)符可以是任意長(zhǎng)度,但出于可讀性和規(guī)范性的考慮,通常會(huì)遵循一定的命名約定,如駝峰命名法。
示例合法標(biāo)識(shí)符:
variableName
_underscore
myVariable
$variable
//示例不合法標(biāo)識(shí)符:
*point
2variable
hello-world
class
String符
s
```
7.為 AB 類的一個(gè)無(wú)形式參數(shù)無(wú)返回值的方法 method 書寫方法頭, 使得
使用類名 AB作為前綴就可以調(diào)用它,該方法頭的形式為 ( A)。
**A.static void method( )** B.public void method( )C.final void method( )? ? ?D.abstract void method( )
8.欲構(gòu)造 ArrayList類的一個(gè)實(shí)例,此類繼承了 List 接口,下列哪個(gè)方 法是正確的(B )。
A.ArrayList myList=new Object( )?
**B.List myList=new ArrayList( )** C.ArrayList myList=new List( )? D.List myList=new List( )
9.Java源文件和編譯后的文件擴(kuò)展名分別為( B)
A. .class和 .java? ? ? **B..java 和 .class** C..class和 .class? ? ?D. .java 和 .java
10.對(duì)于一個(gè) Java源文件, import, class 定義以及 package正確的順序是:A C
**A.package,import,class**? ? B. (B) class,import,packageC.import,package,class? ? ? D.package,class,import?
11.下面哪個(gè)是非法的:A.int I = 32;? ? ? B.float f = 45; 強(qiáng)轉(zhuǎn) **C.float f = 45.0;** **45,0f**? ?D.double d = 45.0; B
?
12.如果一個(gè)類的成員變量只能在所在類中使用, 則該成員變量必須使用 的修飾是C
A.public? 任意 最廣? ? B.protected 同一包? ? **C. private? 同一類**? ? D.static? ?
13.下面關(guān)于 main 方法說(shuō)明正確的是 B
A.public main(String args[ ])? ? ?**B.public static void main(String args[ ])**
C.private static void main(String args[ ])? ? D.void main()
14.關(guān)于抽象方法的說(shuō)法正確的是 ( C)
A.可以有方法體? ? ?B.可以出現(xiàn)在非抽象類中 **C.是沒有方法體的方法**? ? ? D.抽象類中的方法都是抽象方法
15.Java application中的主類需包含 main 方法,以下哪項(xiàng)是 main 方法的 正確形參?( B)
A.String args? ? ?**B.String args[]** C.Char arg? ? ?D.StringBuffer args[]
16.以下關(guān)于繼承的敘述正確的是(A )。
A.**在 Java中類只允許單一繼承**? ?B.在 Java中一個(gè)類只能實(shí)現(xiàn)一個(gè)接口
C.在 Java中一個(gè)類不能同時(shí)繼承一個(gè)類和實(shí)現(xiàn)一個(gè)接口D.在 Java中接口只允許單一繼承
17.若有定義: byte[] x={11,22,33,-66};??
其中 0≤k≤3,則對(duì) x 數(shù)組元素錯(cuò)誤的引用是( C)
A.x[5-3]? ? ?B.x[k]C.**x[k+5]**? ?D.x[0]
18.以下哪個(gè)不是 Java的原始數(shù)據(jù)類型( B)A.int? ? ?**B.Boolean**? 包裝類? ?C.float? ? ?D.char
19.在 Java中,一個(gè)類可同時(shí)定義許多同名的方法,這些方法的形式參 數(shù)的個(gè)數(shù)、類型或順序各不相同,傳回的值也可以不相同。這種面向?qū)?象程序特性稱為(C )A.隱藏 B.重寫**C.重載**D.Java不支持此特性
20.以下有關(guān)構(gòu)造方法的說(shuō)法,正確的是: (A )
**A.一個(gè)類的構(gòu)造方法可以有多個(gè)** B.構(gòu)造方法在類定義時(shí)被調(diào)用
C.構(gòu)造方法只能由對(duì)象中的其它方法調(diào)用。D.構(gòu)造方法可以和類同名,也可以和類名不同??
21.給出下面代碼,關(guān)于該程序以下哪個(gè)說(shuō)法是正確的?(C ) public class Person{?
static int arr[] = new int[5];
public static void main(String a[])
{
System.out.println(arr[0]); }
}
A.編譯時(shí)將產(chǎn)生錯(cuò)誤? ? ?B.編譯時(shí)正確,運(yùn)行時(shí)將產(chǎn)生錯(cuò)誤 **C.輸出零**? ? D.輸出空?
22.下列類定義中哪些是合法的抽象類的定義? (C )
A.abstract Animal{abstract void growl();}? ? B.class abstract Animal{abstract void growl();}
C **.abstract class Animal{abstract void growl();}**?
D.abstract class Animal{abstract void growl(){System.out.println(“growl”);};}?
23.設(shè)有下面兩個(gè)賦值語(yǔ)句:?
a = Integer.parseInt(“12”);
b = Integer.valueOf(“12”).intValue(); B A
A.a 是整數(shù)類型變量, b 是整數(shù)類對(duì)象。B.a是整數(shù)類對(duì)象, b 是整數(shù) 類型變量。
C.a 和 b 都是整數(shù)類對(duì)象并且值相等。? ? ? D.a 和 b 都是整數(shù)類型變量并 且值相等。
```java
Integer.parseInt() 是 Java 中用于將字符串轉(zhuǎn)換為整數(shù)類型的方法。
public class ParseIntExample {
? ? public static void main(String[] args) {
? ? ? ? String numberStr = "123";
? ? ? ? int number = Integer.parseInt(numberStr);
? ? ? ? System.out.println("Parsed integer: " + number);
? ? }
}
在上面的示例中,我們將字符串 "123" 解析為整數(shù)并將其存儲(chǔ)在變量 number 中,然后將其打印出來(lái)。
請(qǐng)注意,如果傳遞給 parseInt() 的字符串無(wú)法解析為整數(shù),將會(huì)拋出 NumberFormatException 異常。因此,在使用該方法時(shí),最好將其包裝在適當(dāng)?shù)漠惓L幚泶a塊中,以確保程序能夠處理異常情況。
```
24.為了使包 ch4在當(dāng)前程序中可見,可以使用的語(yǔ)句是(A )。
**A.import ch4.*;**? ? ?B.package ch4.*;C.ch4 import;? ? ?D.ch4 package;
/*
import ch4.*; // 導(dǎo)入 ch4 包中的所有類
import ch4.ExampleClass; // 導(dǎo)入 ch4 包中的 ExampleClass 類
?
?
*/
# 12
25.如下哪個(gè)是 Java中的標(biāo)識(shí)符 (A )**A.fieldname**? ? ?B.super? ?C.3number? ? D.#number
```
A. fieldname:這是一個(gè)有效的標(biāo)識(shí)符,可以用于命名變量等。
B. super:super 是 Java 關(guān)鍵字,用于引用父類的成員或構(gòu)造方法,不能作為標(biāo)識(shí)符使用。
C. 3number:標(biāo)識(shí)符不能以數(shù)字開頭,因此 3number 不是有效的標(biāo)識(shí)符。
D. #number:標(biāo)識(shí)符不能包含特殊字符,例如 #,因此 #number 也不是有效的標(biāo)識(shí)符。
```
26.下面的代碼段執(zhí)行之后 count 的值是什么 ( D)?
int count = 1;
for (int i = 1; i <= 5; i++) {
count += i;
}
System. out .println(count);
A.5.0? ? ?B.1.0? C.15.0? ? ?**D.16.0**
```java
for 循環(huán)是 Java 中用于重復(fù)執(zhí)行特定代碼塊的一種控制結(jié)構(gòu)。它通常用于遍歷數(shù)組、集合或執(zhí)行一定次數(shù)的循環(huán)操作。for 循環(huán)的語(yǔ)法如下:
java
Copy code
for (初始化語(yǔ)句; 循環(huán)條件; 循環(huán)迭代語(yǔ)句) {
? ? // 循環(huán)體,需要重復(fù)執(zhí)行的代碼
}
```
27.為 AB類的一個(gè)無(wú)形式參數(shù)無(wú)返回值的方法 method 書寫方法頭,使 得使用類名 AB作為前綴就可以調(diào)用它,該方法頭的形式為 (A)。
A **.static void method( )**? ? ?B.public void method( ) C.final void method( )? ? ? D.abstract void method( )
28.下列程序段執(zhí)行后的結(jié)果是 ( )。 **adg**
String s = new String("abcdefg");
for (int i=0; i<s.length(); i+=3){?
System.out.print(s.charAt(i));
}
A.aceg? ? ? B.ACEGC.abcdefg? ? ? D.abcd?
29.下面程序段執(zhí)行后 b 的值是 ( B)。
Integer integ =new Integer(9);
boolean b = integ instanceof Object;
A.9.0? ? **B.true**? ?C.1.0? ? ?D.0
//Integer integ = Integer.valueOf(9);。
30.關(guān)于 for 循環(huán)和 while 循環(huán)的說(shuō)法哪個(gè)正確? (D )
A.while 循環(huán)先判斷后執(zhí)行, for 循環(huán)先執(zhí)行后判斷。
B.while 循環(huán)判斷條件一般是程序結(jié)果, for 循環(huán)的判斷條件一般
是非程序結(jié)果
C.兩種循環(huán)任何時(shí)候都不可以替換
**D.兩種循環(huán)結(jié)構(gòu)中都必須有循環(huán)體,循環(huán)體不能為空**
```
A. 這個(gè)說(shuō)法是不準(zhǔn)確的。在 while 循環(huán)中,先判斷條件,如果條件為真,則執(zhí)行循環(huán)體;在 for 循環(huán)中,也是先判斷條件,如果條件為真,則執(zhí)行循環(huán)體。
B. 這個(gè)說(shuō)法也是不準(zhǔn)確的。while 循環(huán)和 for 循環(huán)的判斷條件都可以是程序結(jié)果,也可以是非程序結(jié)果。
C. 這個(gè)說(shuō)法是不準(zhǔn)確的。在某些情況下,for 循環(huán)和 while 循環(huán)是可以互相替換的,取決于問題的要求和編碼習(xí)慣。不過,并非所有情況都可以直接替換。
總結(jié)起來(lái),正確的是選項(xiàng) D,兩種循環(huán)結(jié)構(gòu)中都必須有循環(huán)體,循環(huán)體不能為空。
```
31.關(guān)于對(duì)象成員占用內(nèi)存的說(shuō)法哪個(gè)正確? (B)
A.同一個(gè)類的對(duì)象共用同一段內(nèi)存
**B.同一個(gè)類的對(duì)象使用不同的內(nèi)存段,但靜態(tài)成員共享相同的內(nèi)存空間**
C.對(duì)象的方法不占用內(nèi)存
D.以上都不對(duì)
32.關(guān)于繼承的說(shuō)法正確的是: (B )
A.子類將繼承父類所有的屬性和方法。
**B.子類將繼承父類的非私有屬性和方法。**
C.子類只繼承父類 public 方法和屬性
D.子類只繼承父類的方法,而不繼承屬性
33.覆蓋與重載的關(guān)系是 (A )無(wú)正確答案
**A.覆蓋只有發(fā)生在父類與子類之間,而重載可以發(fā)生在同一個(gè)類中**
B.覆蓋方法可以不同名,而重載方法必須同名
C.final 修飾的方法可以被覆蓋,但不能被重載
D.覆蓋與重載是同一回事
A. 類:覆蓋只有發(fā)生在父類與子類之間,而方法:重載可以發(fā)生在同一個(gè)類中。
這是覆蓋(方法重寫)和重載的關(guān)系。讓我們解釋一下每個(gè)術(shù)語(yǔ)的含義:
類 覆蓋(方法重寫):在子類中重新定義一個(gè)與父類中具有**相同名稱、參數(shù)列表和返回類型**的方法,以改變方法的實(shí)現(xiàn)。覆蓋是用于 **實(shí)現(xiàn)多態(tài)性** 的關(guān)鍵機(jī)制,它發(fā)生在父類和子類之間。
方法 重載(方法重載):在同一個(gè)類中,可以定義多個(gè)同名的方法,但參數(shù)列表必須不同。重載是指在同一個(gè)類中創(chuàng)建多個(gè)具有相同名稱但不同參數(shù)的方法。
所以,選項(xiàng) A 描述了覆蓋和重載之間的關(guān)系,正確答案是 A。其他選項(xiàng)的描述不準(zhǔn)確:
B. 覆蓋方法和重載方法必須具有相同的名稱,但覆蓋方法必須具有相同的**參數(shù)列表和返回類型**,而**重載方法的參數(shù)列表必須不同**。
C. 使用 final 修飾的方法不能被覆蓋(重寫),但是可以被重載。覆蓋要求子類方法能夠改變父類方法的實(shí)現(xiàn),而 final 方法不能被改變。
final 關(guān)鍵字可以用于修飾方法,這將具有一些特定的含義和行為。當(dāng)一個(gè)方法被 final 修飾時(shí),它表示該方法不能在子類中被覆蓋(重寫)。這意味著在**子類中無(wú)法改變這個(gè)方法的實(shí)現(xiàn)。**
具體來(lái)說(shuō):
使用 final 修飾的方法不能在子類中被覆蓋,這是因?yàn)?final 關(guān)鍵字表示該方法的實(shí)現(xiàn)不能被改變,以確保方法的行為在繼承層次中保持一致。
雖然子類無(wú)法覆蓋 final 方法,但是子類仍然可以繼承該方法。這意味著子類可以調(diào)用該方法,但不能改變其實(shí)現(xiàn)。
這個(gè)特性有助于確保某些核心行為在繼承層次中不被改變。在某些情況下,將方法標(biāo)記為 final 可以提高代碼的可靠性和安全性,防止在子類中無(wú)意間修改重要的行為。
總之,final 修飾的方法雖然不能被子類覆蓋,但是可以被繼承,子類可以調(diào)用這些方法。
```java
class Parent {
? ? final void printMessage() {
? ? ? ? System.out.println("This is the Parent's message.");
? ? }
}
class Child extends Parent {
? ? /* 無(wú)法覆蓋 final 方法
? ? void printMessage() {
? ? ? ? System.out.println("This is the Child's message.");
? ? }*/
}
public class Main {
? ? public static void main(String[] args) {
? ? ? ? Parent parent = new Parent();
? ? ? ? parent.printMessage(); // 調(diào)用 Parent 的方法
? ? ? ? Child child = new Child();
? ? ? ? child.printMessage(); // 調(diào)用繼承的 Parent 的方法
? ? }
}
```
D. 覆蓋與重載是不同的概念,它們涉及不同的方法定義和調(diào)用方式。
***?
34.不屬于類及類成員的訪問控制符的是 ( C)。
A.public? 公開? ?B.private? 類 **C.static**? static 關(guān)鍵字用于表示靜態(tài)成員,而不是控制訪問權(quán)限。這些成員與類本身關(guān)聯(lián),而不是與對(duì)象實(shí)例關(guān)聯(lián)。
? ?D.protected 包?
? ?
? ?
35.為 AB 類的一個(gè)無(wú)形式參數(shù)無(wú)返回值的方法 method 書寫方法頭,使 得使用類名 AB 作為前綴就可以調(diào)用它,該方法頭的形式為 (A )。
**A.static void method( )**? ? B.public void method( )C.final void method( )? ? ?D.abstract void method( )
36.關(guān)于選擇結(jié)構(gòu)下列哪個(gè)說(shuō)法正確? (B )
A.if 語(yǔ)句和 else 語(yǔ)句必須成對(duì)出現(xiàn)**B.if 語(yǔ)句可以沒有 else 語(yǔ)句對(duì)應(yīng)**
C.switch 結(jié)構(gòu)中每個(gè) case語(yǔ)句中必須用 break 語(yǔ)句D.switch 結(jié)構(gòu)中必須有 default 語(yǔ)句
37.while 循環(huán)和 do?while循環(huán)的區(qū)別是: (D )
A.沒有區(qū)別,這兩個(gè)結(jié)構(gòu)任何情況下效果一樣 B.while 循環(huán)比 do?while循環(huán)執(zhí)行效率高
C.while 循環(huán)是先循環(huán)后判斷,所以循環(huán)體至少被執(zhí)行一次? ? ? **D.do?while循 環(huán)是先循環(huán)后判斷,所以循環(huán)體至少被執(zhí)行一次**
38.下列修飾符中與訪問控制無(wú)關(guān)的是 (D )A.Private? ? ?B.public C.protected? ? ?**D.Final**
39.void 的含義: (A )A.方法沒有返回值? ? ?B.方法體為空C.沒有意義? ? ? D.定義方法時(shí)必須使用
```java
D. Final
final 是一個(gè)修飾符,用于表示不可改變的、最終的概念。它可以應(yīng)用于類、方法和變量,但與訪問控制無(wú)關(guān)。在訪問控制方面,final 并不影響訪問權(quán)限,而是指示某些東西是最終的,不能再被修改。
其他選項(xiàng)的解釋:
A. private:表示成員(字段、方法)只能在類內(nèi)部訪問,與訪問控制有關(guān)。
B. public:表示成員可以在任何地方訪問,與訪問控制有關(guān)。
C. protected:表示成員可以在同一個(gè)包內(nèi)和子類中訪問,與訪問控制有關(guān)。
D. final: 與訪問控制無(wú)關(guān),表示最終、不可改變的概念。
```
40.return 語(yǔ)句: (C )
A.只能讓方法返回?cái)?shù)值? ? ?B.方法都必須含有? ?**C.方法中可以有多句 return**? ? D.不能用來(lái)返回對(duì)象
```java
return 語(yǔ)句用于在方法中提前返回結(jié)果,并終止方法的執(zhí)行。以下是關(guān)于選項(xiàng)的解釋:
A. return 語(yǔ)句不僅可以用于返回?cái)?shù)值,還可以用于返回任何類型的數(shù)據(jù),包括 **數(shù)值、對(duì)象、布爾值** 等。
B. 方法不必一定包含 return 語(yǔ)句。例如,void 類型的方法不需要返回值,可以沒有 return 語(yǔ)句。但對(duì)于有返回類型的方法,必須包含至少一條 return 語(yǔ)句,確保在所有情況下都有返回值。
C. 方法中可以有多句 return: 一個(gè)方法可以包含多個(gè) return 語(yǔ)句,每個(gè)用于不同的條件分支。方法在執(zhí)行到某個(gè) return 語(yǔ)句時(shí)會(huì)立即返回,并不會(huì)執(zhí)行后續(xù)的代碼。
D. return 語(yǔ)句可以用來(lái)返回對(duì)象。您可以在方法中使用 return 語(yǔ)句返回引用類型(對(duì)象)的實(shí)例。
public class ReturnExample {
? ? public static void main(String[] args) {
? ? ? ? int result1 = calculateValue(5);
? ? ? ? int result2 = calculateValue(10);
? ? ? ? System.out.println("Result 1: " + result1);
? ? ? ? System.out.println("Result 2: " + result2);
? ? }
? ? public static int calculateValue(int x) {
? ? ? ? if (x < 5) {
? ? ? ? ? ? return x * 2;
? ? ? ? } else if (x < 10) {
? ? ? ? ? ? return x + 3;
? ? ? ? } else {
? ? ? ? ? ? return x - 5;
? ? ? ? }
? ? }
}
```
41.下列說(shuō)法哪個(gè)正確?C
A.不需要定義類,就能創(chuàng)建對(duì)象 B.對(duì)象中必須有屬性和方法
**C.屬性可以是簡(jiǎn)單變量,也可以是一個(gè)對(duì)象** D.屬性必須是簡(jiǎn)單變量
42.關(guān)于方法 main()的說(shuō)法哪個(gè)正確?( C)
A.方法 main()只能放在公共類中B.main()的頭定義可以根據(jù)情況任意更改
**C.一個(gè)類中可以沒有 main()方法
】**
D.所有對(duì)象的創(chuàng)建都必須放在 main()方法中
43.構(gòu)造函數(shù)何時(shí)被調(diào)用? **( A)A.創(chuàng)建對(duì)象時(shí)**? ? ?B.類定義時(shí)C.使用對(duì)象的方法時(shí)? ? ?D.使用對(duì)象的屬性時(shí)?
**構(gòu)造函數(shù)用于在創(chuàng)建對(duì)象時(shí)進(jìn)行初始化操作**
44.關(guān)于構(gòu)造函數(shù)的說(shuō)法哪個(gè)正確? (C )
A.一個(gè)類只能有一個(gè)構(gòu)造函數(shù) B.一個(gè)類可以有多個(gè)不同名的構(gòu)造函數(shù)
**C.構(gòu)造函數(shù)與類同名**D.構(gòu)造函數(shù)必須自己定義,不能使用父類的構(gòu)造函數(shù)
```java
構(gòu)造函數(shù)的特點(diǎn)包括:
構(gòu)造函數(shù)的名字必須與類的名字完全相同,包括大小寫。
構(gòu)造函數(shù)沒有返回類型,甚至沒有 void。它們的目的是初始化對(duì)象,而不是返回值。
如果你不顯式地定義構(gòu)造函數(shù),Java 會(huì)提供一個(gè)默認(rèn)的無(wú)參數(shù)構(gòu)造函數(shù),但如果你定義了任何構(gòu)造函數(shù),Java 將不會(huì)提供默認(rèn)的構(gòu)造函數(shù)。
如果你想要多個(gè)構(gòu)造函數(shù),可以定義多個(gè),它們可以擁有不同的參數(shù)列表,這稱為構(gòu)造函數(shù)的重載。
public class MyClass {
? ? private int value;
? ? // 構(gòu)造函數(shù)
? ? public MyClass() {
? ? ? ? value = 0; // 初始化 value
? ? }
? ? // 構(gòu)造函數(shù)重載
? ? public MyClass(int initialValue) {
? ? ? ? value = initialValue; // 使用傳入的參數(shù)初始化 value
? ? }
}
```
45.this 和 super:B
A.都可以用在 main()方法中B.都是指一個(gè)內(nèi)存地址
**C.不能用在 main()方法中**D.意義相同
//在 main() 方法中,不能使用 .this 和 super 關(guān)鍵字。
46.關(guān)于 super 的說(shuō)法正確的是:B
A.是指當(dāng)前對(duì)象的內(nèi)存地址**B.是指當(dāng)前對(duì)象的最近父類對(duì)象的內(nèi)存地址**
C.是指當(dāng)前對(duì)象最近的父類D.可以用在 main()方法中
47.關(guān)于接口哪個(gè)正確? ( A)
**A.實(shí)現(xiàn)一個(gè)接口必須實(shí)現(xiàn)接口的所有方法** 當(dāng)一個(gè)類實(shí)現(xiàn)了一個(gè)接口時(shí),它必須提供接口中定義的所有方法的具體實(shí)現(xiàn),否則會(huì)導(dǎo)致編譯錯(cuò)誤。
B.一個(gè)類只能實(shí)現(xiàn)一個(gè)接口
C.接口間不能有繼承關(guān)系D.接口和抽象類是同一回事
48.對(duì)于已經(jīng)被定義過可能拋出異常的語(yǔ)句,在編程時(shí): (A )
**A.必須使用 try/catch 語(yǔ)句處理異常,或用 throws 將其拋出**
B.如果程序錯(cuò)誤,必須使用 try/catch 語(yǔ)句處理異常
C.可以置之不理
D.只能使用 try/catch 語(yǔ)句處理
49.給出下列代碼片段:(D )
if(x>0){System.out.println("first");}
else if(x>-3){ System.out.println("second");}
else {System.out.println("third");}
請(qǐng)問 x 處于什么范圍時(shí)將打印字符串“ second”?A.x>0? ? B.x>-3C.x<=-3? ?**D.x<=0 &&x>-3**
50.在 Java中,一個(gè)類可同時(shí)定義許多同名的方法, 這些方法的形式參數(shù) 的個(gè)數(shù)、類型?
或順序各不相同,傳回的值也可以不相同,這種面向?qū)ο蟪绦蛱匦苑Q為:
(C )A.A、隱藏B.B、覆蓋C.**C、重載**D.D、Java不支持此特性
51.如要拋出異常,應(yīng)用下列哪種子句?(C )A.catch? ? B.throw? ? **C.throws**? ? D.finally
/*
A. catch:用于捕獲并處理異常。在 try 塊中,可以使用 catch 塊來(lái)捕獲特定類型的異常,并執(zhí)行相應(yīng)的處理代碼。
B. throw:用于在代碼中手動(dòng)拋出異常。通過 throw 關(guān)鍵字,可以拋出自定義的異常或者標(biāo)準(zhǔn)庫(kù)中的異常類的實(shí)例。
C. throws:用于在方法簽名中聲明可能會(huì)拋出的異常。當(dāng)一個(gè)方法可能會(huì)拋出某種異常時(shí),可以使用 throws 關(guān)鍵字在方法聲明中列出可能的異常類型。
D. finally:用于定義一個(gè) finally 塊,該塊中的代碼無(wú)論是否發(fā)生異常都會(huì)執(zhí)行。通常在 try 塊中的代碼執(zhí)行后,無(wú)論是否發(fā)生異常,finally 塊中的代碼都會(huì)被執(zhí)行,用于執(zhí)行清理操作等。
*/
52.在使用 interface 聲明一個(gè)接口時(shí),只可以使用 ____修飾符修飾該接口。 ( D)
A.private? ?B.protectedC.private protected? ? ?**D.public**
53.下列代碼的輸出結(jié)果是 : (A )
class Parent{
void printMe() {?
System.out.println("parent");
}
};
class Child extends Parent {
void printMe() {?
System.out.println("child");
}
void printall() {?
super.printMe();
this.printMe();?
printMe();
}
}
public class Test_this {
public static void main(String args[]) {
Child myC=new Child();?
myC.printall();
}
}
**A.parent
child?
child**
? ? ?B.parent
?child
parent?
C.parent
child?
? ? ?D.編譯錯(cuò)誤
? ? ?
? ? ?
? ? ?
? ? ?
54.
注釋的基本原則不包括: (D )A.注釋應(yīng)該增加代碼的清晰度? ? ? B.注釋要簡(jiǎn)潔
C.在寫代碼之前寫注釋 **D.盡量給每一條語(yǔ)句加注釋**
55.下列不可作為java語(yǔ)言修飾符的是A. a1? ? ?B.1.0 **C.? _1**? ? ? D.11.0 C?
56.有一段java 應(yīng)用程序,它的主類名是a1,那么保存它的源文件名可以是**A.a1.java?
//主類的名稱與文件名保持一致**? ? ?B.a1.classC.a1? ? ? ?D.都對(duì) A
57.整型數(shù)據(jù)類型中,需要內(nèi)存空間最少的是A.short? ? ? ? ? ? ?B.long? ? ? ? ?C.int? ? ? ? ? ? ? ? ? **D. byte**?
58.Java中 C
A.一個(gè)子類可以有多個(gè)父類,一個(gè)父類也可以有多個(gè)子類? ? ?B.一個(gè)子類可以有多個(gè)父類,但一個(gè)父類只可以有一個(gè)子類
**C.一個(gè)子類可以有一個(gè)父類,但一個(gè)父類可以有多個(gè)子類**? ? ?D.上述說(shuō)法都不對(duì)
59.在創(chuàng)建對(duì)象時(shí)必須 C
A.先聲明對(duì)象,然后才能使用對(duì)象? ? ?B.先聲明對(duì)象,為對(duì)象分配內(nèi)存空間,然后才能使用對(duì)象
**C.先聲明對(duì)象,為對(duì)象分配內(nèi)存空間,對(duì)對(duì)象初始化,然后才能使用對(duì)象**? ?D.上述說(shuō)法都對(duì)?
60.在調(diào)用方法時(shí),若要使方法改變實(shí)參的值,可以 B
A.用基本數(shù)據(jù)類型作為參數(shù)? ? ?**B.用對(duì)象作為參數(shù)**C.A和B都對(duì)? ? ?D.A和B都不對(duì)
在 Java 中,如果你想讓方法改變實(shí)參的值,可以使用對(duì)象作為參數(shù)(選項(xiàng) B)?;緮?shù)據(jù)類型作為參數(shù)傳遞給方法時(shí),傳遞的是值的副本,而不是引用,所以無(wú)法在方法內(nèi)部修改實(shí)參的值。但是,通過傳遞對(duì)象作為參數(shù),方法可以修改對(duì)象的內(nèi)部狀態(tài),從而影響實(shí)參。
61.Java語(yǔ)言具有許多優(yōu)點(diǎn)和特點(diǎn),哪個(gè)反映了Java程序并行機(jī)制的特點(diǎn)?B
A.安全性? ? ?**B.多線程**C.跨平臺(tái)? ? ?D.可移植
62.以下聲明合法的是 B BD
A.default? String? s;? ? **B.public? final? static? native? int? w( ) ;**
C.abstract? double? d;? ? ?D.abstract? final? double? hyperbolicCosine( );
. public final static native int w();:這是一個(gè)合法的聲明,它表示一個(gè) public 訪問修飾符的、final 和 static 修飾符的、native 方法,返回類型為 int。
***
D. abstract final double hyperbolicCosine();:這也是一個(gè)合法的聲明,盡管有點(diǎn)不尋常。這表示一個(gè)抽象的、final 修飾符的、返回類型為 double 的方法。
選項(xiàng) A 和 C 都是不合法的:
A. default String s;:Java 中不允許使用 default 關(guān)鍵字來(lái)聲明變量。
C. abstract double d;:抽象方法通常是在接口中聲明的,而不是在類中。在類中聲明抽象方法必須使用 abstract 關(guān)鍵字并提供方法體。
所以,選項(xiàng) B 和 D 是合法的聲明。
63.關(guān)于以下程序段,正確的說(shuō)法是(? C? )
?1.? String? s1=”abc”+”def”;?
2.? String? s2=new? String(s1);
?3.? if(s1= =s2)? //false? new String(s1) 創(chuàng)建的一個(gè)新的字符串對(duì)象,內(nèi)容與 s1 相同,但是它在堆內(nèi)存中分配了新的內(nèi)存空間。 s1 是通過字符串拼接得到的,因此它會(huì)指向字符串常量池中的 "abcdef"
4.? ? ?System.out.println(“= = succeeded”);??
5.? if (s1.equals(s2))??
6.? ? ?System.out.println(“.equals()? succeeded”);?
A.行4與行6都將執(zhí)行? ? ? B.行4執(zhí)行,行6不執(zhí)行**C.行6執(zhí)行,行4不執(zhí)行**? ? ? ?D.行4、行6都不執(zhí)行
64. Java application中的主類需包含main方法,main方法的返回類型是什么?D
A.int? ? ? ? ?B.float? ? ? ? ?C.double? ? ? ? ? ?**D.void**
65. 以下標(biāo)識(shí)符中哪項(xiàng)是不合法的**A.final**? ? ?B.$double? C.hello? ? ? ? ? ? ?D.BigMeaninglessName A
?
66. 在Java中,一個(gè)類可同時(shí)定義許多同名的方法,這些方法的形式參數(shù)個(gè)數(shù)、類型或順序各不相同,傳回的值也可以不相同。這種面向?qū)ο蟪绦虻奶匦苑Q為A.隱藏? ? ?B.覆蓋**C.重載**? ? ?D.Java不支持此特性 C
?
67. 以下關(guān)于構(gòu)造函數(shù)的描述錯(cuò)誤的是 A
**A.構(gòu)造函數(shù)的返回類型只能是void型。**? ? ?B.構(gòu)造函數(shù)是類的一種特殊函數(shù),它的方法名必須與類名相同。
C.構(gòu)造函數(shù)的主要作用是完成對(duì)類的對(duì)象的初始化工作。? ? ?D.一般在創(chuàng)建新對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)。
68. 下列哪些語(yǔ)句關(guān)于Java內(nèi)存回收的說(shuō)明是正確的? B
A.程序員必須創(chuàng)建一個(gè)線程來(lái)釋放內(nèi)存? ? ?B**內(nèi)存回收程序負(fù)責(zé)釋放無(wú)用內(nèi)存**
C.內(nèi)存回收程序允許程序員直接釋放內(nèi)存? ? ? D.內(nèi)存回收程序可以在指定的時(shí)間釋放內(nèi)存對(duì)象
69.下面為應(yīng)用程序入口的main方法的是? A
**A.public static void main(String[] args)**? ? B.public static int main(String[] args)
C.public void main(String[] args)? ? ?D.public int main(String[] args)
70.public class Test {
?public static void main() {
? System.out.print("aaa");
?}
}
下面說(shuō)法正確的是? A
**A.程序無(wú)法通過編譯,因?yàn)閙ain方法聲明方式不對(duì)**? ? ?B.程序可以通過編譯,但運(yùn)行程序行,會(huì)提示沒有找到main方法的異常
C.程序正常運(yùn)行,并輸出aaa? ? ?D.程序可以編譯,但無(wú)法運(yùn)行,因?yàn)樵撐募]有public類
71.public class Test {
?static void main(String[] args) {
? System.out.print("aaa");
?}
}
下面說(shuō)法正確的是? A
**A.程序無(wú)法通過編譯,因?yàn)閙ain方法聲明方式不對(duì) 找不到 main 方法**? ? B.程序可以通過編譯,但運(yùn)行程序行,會(huì)提示"Main method not public"的異常
C.程序正常運(yùn)行,并輸出aaa? ? ?D.程序可以編譯,但無(wú)法運(yùn)行,因?yàn)樵撐募]有public類
72.不可以用作變量名的首字符是? C
A.字母? ? ?B.下劃線**C.數(shù)**字? ? ?D.美元符號(hào)
73.下面哪個(gè)語(yǔ)句會(huì)產(chǎn)生編譯錯(cuò)誤?**A.float a = 2.0** //浮點(diǎn)數(shù)f? ? B.double b = 2.0? C.int c=2? ? ?D.long d=2 A
74.哪個(gè)語(yǔ)句不會(huì)出現(xiàn)編譯錯(cuò)誤?A.float f= 1.3 // 浮點(diǎn)數(shù)必須f。? ?B.char c = "a"? 單引號(hào)? **C.byte b = 25**? ? ?D.boolean d = null?
75.哪個(gè)語(yǔ)句會(huì)出現(xiàn)編譯錯(cuò)誤? **A.byte b=1234** -127 128? ?B.long b=2C.int c=3? ? ?D.boolean d = true?
76.哪個(gè)語(yǔ)句會(huì)出現(xiàn)編譯錯(cuò)誤?A.byte b=12? ? ?B.long b=2 **C.char b = 'bc'**? ?D.boolean d = true?
77.下面哪句能通過編譯?C? A.float a = 1? //int強(qiáng)轉(zhuǎn)? B.float b =1.0? **C.char b = 'bc'**? ?D.boolean d = null A
78.執(zhí)行完下面的程序,哪個(gè)結(jié)論是正確的?? ?133
?int a,b,c;
?a = 1;?
?b = 2;
?c = (a + b >3 ? a++ : ++ b)
A.a為2,b為3? ? ?**B.a為1,b為3**? C.a為1,b為2? ? ?D.c的值為false
79.執(zhí)行完下面的程序,輸出什么? D B
int a = 3;
?int b = 1;
?if(a=b)
? System.out.println("a=" + a);
A.a=1? ? ?B.a=3C.編譯錯(cuò)誤,沒有輸出? ? ?**D.正常運(yùn)行,但沒有輸出**
80.下面哪個(gè)調(diào)用方法的結(jié)論是正確的? B
public void method(boolean a ,boolean b)
{
? if(a)
? ?System.out.println("A");
? else if(a && b)
? else{
? ? if(!b)
? ? ?System.out.println("notB");
? ? else
? ? ?System.out.println("ELSE");
? }?
}?
A.輸出"A&&B"? ? ?B.**輸出"notB"**
C.,輸出"ELSE"? ? ?D.輸出"ELSE"
81.可以用作switch表達(dá)式的基本數(shù)據(jù)類型是? C
A.char,byte,short,float? ? ?B.char,int,long,short
**C.char,short,int,byte**? ? ?D.float,double,int,byte
82. C A **實(shí)際D**
public class Test {
?public static void main(String[] args) {
? byte i=1;
? while(++i > 0)
? ?;
? System.out.print("Loop");
?}
}?
A.運(yùn)行程序會(huì)進(jìn)入死循環(huán),永遠(yuǎn)不會(huì)退出? ? ?B.程序有編譯錯(cuò)誤
C.每運(yùn)行一次程序,會(huì)輸出多次"Loop"? ? ?**D.每運(yùn)行一次程序,會(huì)輸出一次Loop,并退出**
```java
在給定的代碼示例中,while 循環(huán)條件 ++i > 0 在每次循環(huán)迭代中將 i 增加 1,然后判斷 i 是否大于 0。由于 byte 類型的范圍是 -128 到 127,在循環(huán)執(zhí)行過程中,i 的值會(huì)從 1 增加到 127,然后再自增 1,變?yōu)?-128。此時(shí) -128 > 0 條件不滿足,循環(huán)會(huì)退出。
因此,每次運(yùn)行程序,會(huì)輸出一次 "Loop",然后退出循環(huán)。我之前的解釋是錯(cuò)誤的,對(duì)此混淆感到抱歉。
```
83.關(guān)于下面程序,哪個(gè)選項(xiàng)是正確的?**C**? ?A 報(bào)錯(cuò)
//會(huì)出現(xiàn)一個(gè)編譯錯(cuò)誤,因?yàn)?mb_isOdd 方法的返回類型是 int,而在 if 語(yǔ)句中需要一個(gè)布爾表達(dá)式。
public class Test {
?public static int mb_isOdd(int x){
? return (x % 2);
?}
?public static void main(String[] args) {
? if(mb_isOdd(3)){
? ?System.out.print("3 is odd.");
? }else{
? ?System.out.print("3 is even.");
? }
?}
}?
A.程序輸出"3 is odd"? ? ?B.程序輸出"3 is even"**C.程序無(wú)法通過編譯**? ? ?D.程序可以編譯,但無(wú)法運(yùn)行
84.下面中哪兩個(gè)可以在A的子類中使用:(D )
class A {
protected int method1 (int a, int b) {
return 0;
}
}
A. public int method 1 (int a, int b) { return 0; }
B. private int method1 (int a, int b) { return 0; }
C. private int method1 (int a, long b) { return 0; }
A.AC? ? ?B.AB
C.AD? ? ?D.BC
85.下列關(guān)于修飾符混用的說(shuō)法,錯(cuò)誤的是(B ):D
A.abstract不能與final并列修飾同一個(gè)類?
**B.abstract類中可以有private的成員**
抽象類的成員,包括字段和非抽象方法.在一個(gè)抽象類中,可以有 private 的成員,但是不能有 private 的抽象方法。
C.abstract方法必須在abstract類中D.static方法中能處理非static的屬性
86.執(zhí)行完以下代碼int [ ] x = new int[25];后,以下哪項(xiàng)說(shuō)明是正確的(A):
**A.x[24]為0**? ? ?B.x[24]未定義? C.x[25]為0? ? ?D.x[0]為空
87.編譯運(yùn)行以下程序后,關(guān)于輸出結(jié)果的說(shuō)明正確的是 (B ):
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “+ ((x>4) ? 99.9 :9));
}
}
A.輸出結(jié)果為:value is 99.99? ? ?B. 輸出結(jié)果為:value is 9 **C.輸出結(jié)果為:value is 9.0**? ? ?D.編譯錯(cuò)誤
88.class HasStatic{
?private static int x=100;
?public static void main(String args[ ]){
? HasStatic hs1=new HasStatic( );
? hs1.x++;
? HasStatic hs2=new HasStatic( );
? hs2.x++;
? hs1=new HasStatic( );
? hs1.x++;
? HasStatic.x--;
? System.out.println("x="+x);
?}
} A B
在給定的代碼示例中,靜態(tài)變量 x 是在一個(gè)共享的內(nèi)存地址上的。無(wú)論通過哪個(gè)實(shí)例或類來(lái)訪問這個(gè)靜態(tài)變量,都是在操作同一個(gè)內(nèi)存地址上的值。這就是靜態(tài)變量的特性,它在整個(gè)類的所有實(shí)例之間共享狀態(tài),而不是每個(gè)實(shí)例都有自己的副本。所以,無(wú)論通過哪個(gè)實(shí)例修改 x 的值,都會(huì)影響到所有其他實(shí)例和類對(duì) x 的訪問。
A. 程序通過編譯,輸出結(jié)果為:x=99? ? ?B. 程序通過編譯,輸出結(jié)果為:x=101?
C.程序通過編譯,輸出結(jié)果為:x=103? ? **D.程序通過編譯,輸出結(jié)果為:x=102**
89.下列說(shuō)法正確的是(C)
A.class中的constructor不可省略? ? ?B.constructor必須與class同名,但方法不能與class同名
**C.constructor在一個(gè)對(duì)象被new時(shí)執(zhí)行****造函數(shù)通常用于執(zhí)行對(duì)象的初始化操作,為對(duì)象的成員變量設(shè)置初始值等。**? ? ?D.一個(gè)class只能定義一個(gè)constructor
90.下列哪一種敘述是正確的( D)
A. abstract修飾符可修飾字段、方法和類? ? ?B.抽象方法的body部分必須用一對(duì)大括號(hào){ }包住
C.聲明抽象方法,大括號(hào)可有可無(wú)? ? ?**D.聲明抽象方法不可寫出大括號(hào)**
91.Java語(yǔ)言中,String類的IndexOf()方法返回的類型是?A.Int16? ? ?B.Int32**C.int**? D.long C
92.執(zhí)行下列代碼后,哪個(gè)結(jié)論是正確的 String[] s=new String[10]; A
**A. s[9] 為 null;**? ?B.s[10] 為 “”;C. s[0] 為 未定義? ? ?D.s.length 為9
93.以下關(guān)于面向?qū)ο蟾拍畹拿枋鲋?,不正確的一項(xiàng)是(B)。
A.在現(xiàn)實(shí)生活中,對(duì)象是指客觀世界的實(shí)體? ? **B.程序中的對(duì)象就是現(xiàn)實(shí)生活中的對(duì)象**
C.在程序中,對(duì)象是通過一種抽象數(shù)據(jù)類型來(lái)描述的,這種抽象數(shù)據(jù)類型稱為類(class)? ? ?D.在程序中,對(duì)象是一組變量和相關(guān)方法的集合
94.屬性的可見性沒有哪個(gè)選項(xiàng) C
A.公有的? ? ?B.私有的? **C.私有保護(hù)的**? ? D.保護(hù)的
95.在字符串前面加上_____符號(hào),則字符串中的轉(zhuǎn)義字符將不被處理B A
A.@? ? ?**B.\ 。** C.#? ? ?D.%
96.下列哪個(gè)語(yǔ)句關(guān)于內(nèi)存回收的說(shuō)明是正確的。 B
A.程序員必須創(chuàng)建一個(gè)線程來(lái)釋放內(nèi)存? ? **B.內(nèi)存回收程序負(fù)責(zé)釋放無(wú)用內(nèi)存**
C.內(nèi)存回收程序允許程序員直接釋放內(nèi)存? ? ?D.內(nèi)存回收程序可以在指定的時(shí)間釋放內(nèi)存對(duì)象
97.在下面程序的第6行補(bǔ)充上下列哪個(gè)方法,會(huì)導(dǎo)致在編譯過程中發(fā)生錯(cuò)誤? A B
1) class Super{
2) public float getNum(){
3) return 3.0f;
4) }
}
5) public class Sub extends Super{
6)
7) }
A **.public float getNum(){return 4.0f;}? // 覆蓋父類方法并返回不同的值**??
**方法名稱、參數(shù)列表和返回類型)必須與父類方法的方法簽名完全一致。否則,編譯器會(huì)報(bào)錯(cuò)**
B.public void getNum(){}
C.public void getNum(double d){}? ? ?D.public double getNum(float d){ return 4.0f ;}?
(重寫)從父類繼承的方法,以便子類可以根據(jù)自己的需求重新定義方法的行為。在覆蓋過程中,子類必須保持方法簽名(名稱、參數(shù)列表和返回類型)與父類方法一致。通過覆蓋,子類可以為繼承的方法提供不同的實(shí)現(xiàn),從而定制其行為,而不會(huì)影響父類或其他可能使用父類方法的類。
98.下面關(guān)于import, class和package的聲明順序哪個(gè)正確?( A)?
**A.package, import, class**? ?B.class, import, package
C.import, package, class? ? ?D.package, class, import
99.下面哪個(gè)是正確的?(D )
A.String temp [] = new String {“a” “b” “c”};? ? ?B.String temp [] = {“a” “b” “c”}
C.String temp = {“a”, “b”, “c”}? ? ?**D.String temp [] = {“a”, “b”, “c”}**
```java
使用new 創(chuàng)建一個(gè)包含字符串的數(shù)組
public class StringArrayExample {
? ? public static void main(String[] args) {
? ? ? ? // 創(chuàng)建一個(gè)包含字符串的數(shù)組
? ? ? ? String[] stringArray = new String[4];
? ? ? ? stringArray[0] = "apple";
? ? ? ? stringArray[1] = "banana";
? ? ? ? stringArray[2] = "orange";
? ? ? ? stringArray[3] = "grape";
? ? ? ? // 遍歷并打印數(shù)組中的每個(gè)元素
? ? ? ? for (String fruit : stringArray) {
? ? ? ? ? ? System.out.println(fruit);
? ? ? ? }
? ? }
}
```
100.關(guān)于java.lang.String類,以下描述正確的一項(xiàng)是(A )
**A.String類是final類故不可以繼承;**? ? ?B.String類是final類故可以繼承;
C.String類不是final類故不可以繼承;? ? ?D.String類不是final類故可以繼承;
**String 類被設(shè)計(jì)為 final 類,這意味著它不能被繼承,無(wú)法作為其他類的父類。**?
101.接口是Java面向?qū)ο蟮膶?shí)現(xiàn)機(jī)制之一,以下說(shuō)法正確的是:(B )
A. Java支持多重繼承,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口;? ? ?**B.Java只支持單重繼承,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口;**
C.Java只支持單重繼承,一個(gè)類只可以實(shí)現(xiàn)一個(gè)接口;? ? ?D.Java支持多重繼承,但一個(gè)類只可以實(shí)現(xiàn)一個(gè)接口。
102.下列關(guān)于interface的說(shuō)法正確的是:(D )
A.interface中可以有private方法? ? ?B.interface中可以有final方法
C.interface中可以有function實(shí)現(xiàn)? ? ? **D. interface可以繼承其他interface**
```java
是關(guān)于 Java 接口的正確描述。讓我解釋其他選項(xiàng)的含義:
A. interface 中不能有 private 方法。在 Java 9 之后,接口中可以有 private 方法,但這些方法必須是靜態(tài)的,而且只能在接口內(nèi)部使用,不能被實(shí)現(xiàn)類實(shí)現(xiàn)或直接調(diào)用。
B. interface 中不能有 final 方法。**接口中的方法默認(rèn)是抽象的,**不需要使用 abstract 或 final 關(guān)鍵字進(jìn)行修飾。
C. interface 中可以有方法的聲明,但實(shí)際的方法實(shí)現(xiàn)是在實(shí)現(xiàn)這個(gè)接口的類中完成的。Java 8 之后,接口中也可以有默認(rèn)方法和靜態(tài)方法的實(shí)現(xiàn)。
D. interface 可以繼承其他 interface: Java 中的接口可以通過 extends 關(guān)鍵字繼承其他接口。這使得接口之間可以建立繼承關(guān)系,以便在子接口中擴(kuò)展父接口的聲明。
```
103.以下程序正確的輸出是(A )
package test;
public class FatherClass {
public FatherClass() {
System.out.println(“FatherClass Create”);
}
}
package test;
import test.FatherClass;
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println(“ChildClass Create”);
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
**A.FatherClass Create
FatherClass Create
ChildClass Create**
B.FatherClass Create
ChildClass Create
FatherClass Create
C.ChildClass Create
ChildClass Create
FatherClass Create? ? ?D.ChildClass Create
FatherClass Create
FatherClass Create
104.給定如下代碼,下面哪個(gè)可以作為該類的構(gòu)造函數(shù) (B )
public class Test {
}
A.public void Test() {?}? ? ?**B. public Test() {?}** C.public static Test() {?}? ? ?D.public static void Test() {?}
105.提供Java存取數(shù)據(jù)庫(kù)能力的包是(A)
A.java.sql? ? ?B.java.awt C.java.lang? ? ?D.java.swing
A. java.sql 是提供 Java 存取數(shù)據(jù)庫(kù)能力的包。這個(gè)包包含了用于連接和操作數(shù)據(jù)庫(kù)的類和接口,可以用于執(zhí)行數(shù)據(jù)庫(kù)查詢、插入、更新等操作。
B. java.awt 是**用于創(chuàng)建圖形用戶界面(GUI**的抽象窗口工具包,與數(shù)據(jù)庫(kù)操作無(wú)關(guān)。
C. java.lang 包含了 Java 語(yǔ)言的核心類,**如基本數(shù)據(jù)類型、異常類**等,也與數(shù)據(jù)庫(kù)操作無(wú)關(guān)。
D. java.swing 是用于創(chuàng)建圖形用戶界面(GUI)的一種工具包,是 AWT(java.awt)的補(bǔ)充,也與數(shù)據(jù)庫(kù)操作無(wú)關(guān)。