Java日常練習題,每天進步一點點(25)

承蒙各位厚愛,我們一起每天進步一點點!(鼠標選中空白處查看答案)

1、下面程序段執行後b的值是()。

Integer integ =new Integer(9);

boolean b = integ instanceof Object;

正確答案: B

9

true

1

false

題解:
Object是 integ 的父類

2、以下關於繼承的敘述正確的是

正確答案: A

在Java中類隻允許單一繼承

在Java中一個類不能同時繼承一個類和實現一個接口

在Java中接口隻允許單一繼承

在Java中一個類隻能實現一個接口

題解:
類支持單繼承,接口支持多繼承

3、下面關於依賴註入(DI)的說法不正確的是()

正確答案: A

隻有通過Spring才能實現依賴註入(DI)

依賴註入的主要目的是解耦合

常見的依賴註入方式有Setter和構造方法

題解:
依賴註入是一種思想,或者說是一種設計模式,在java中是通過反射機制實現,與具體框架無關。

4、下列整型常量 i 的定義中,正確的是( )

正確答案: C

final i;

static int i;

static final int i=234;

final float i=3.14f;

題解:
java中final修飾的變量有三種:靜態變量、實例變量和局部變量,分別表示三種類型的常量。int關鍵字修飾整型類型。static修飾靜態變量,即當利用這個關鍵字來修飾一個變量的時候,在創建對象之前就會為這個變量在內存中創建一個存儲空間。以後創建對對象如果需要用到這個靜態變量,那麼就會共享這一個變量的存儲空間。
A:缺少必要的整型類型聲明
B:缺少常量關鍵字final
D:定義一個浮點常量

5、下面關於Java package的描述,哪個是正確的:()

I. 包不提供將所有類名分區為更易管理的塊的機制.

II. 包提供可見性控制機制.

III. 包的一個重要屬性是包內定義的所有類都可以通過該包外的代碼訪問.

IV. 聲明為包的一部分的類的.class文件可以存儲在多個目錄中.

正確答案: B

隻有I

隻有II

隻有III

隻有IV

題解:
為瞭更好地組織類,Java 提供瞭包機制,用於區別類名的命名空間。
包的作用
1、把功能相似或相關的類或接口組織在同一個包中,方便類的查找和使用。
2、如同文件夾一樣,包也采用瞭樹形目錄的存儲方式。同一個包中的類名字是不同的,不同的包中的類的名字是可以相同的,當同時調用兩個不同包中相同類名的類時,應該加上包名加以區別。因此,包可以避免名字沖突。
3、包也限定瞭訪問權限,擁有包訪問權限的類才能訪問某個包中的類。
Java 使用包(package)這種機制是為瞭防止命名沖突,訪問控制,提供搜索和定位類(class)、接口、枚舉(enumerations)和註釋(annotation)等。

6、下面這段程序的輸出結果是()

public class Main {

public static void main(String[] args) {

split(12);

}

public static int split(int number) {

if (number > 1) {

if (number % 2 != 0) System.out.print(split((number + 1) / 2));

System.out.print(split(number / 2));

}

return number;

}

}

正確答案: A

12136

63121

61213

11236

題解:
考察方法進棧與出棧的順序。先進後出
有個知識點,方法在出棧的時候,執行的是return語句。因為出棧就意味著方法結束並消費,如果沒有return語句,那麼方法出棧的時候什麼都不執行,就直接銷毀。
1.執行split(12)時,執行代碼System.out.print(split(number / 2))
split(12/2)進棧,此時number=6;
2.執行split(6)時,執行代碼System.out.print(split(number / 2))
split(6/2)進棧,此時number=3;
3.執行split(3)時,
第1行 if (number % 2 != 0)
第2行 System.out.print(split((number + 1) / 2));
第3行 System.out.print(split(number / 2));
按照順序執行
先執行第2行
首先split((3+1)/2)進棧,此時number=2,
再執行split(2),那麼split(2/2)進棧,此時number=1, 最後return 1,
註意此時第2行代碼還沒有結束
此時
split(2/2)出棧,輸出1;
split((3+1)/2)出棧,輸出2;
第二行代碼結束,再執行第三行,此時number=3,執行System.out.print(split(number / 2))
split(3/2)進棧,number=1,return,那麼就需要出棧瞭
split(3/2)出棧,輸出1
split(6/2)出棧,輸出3
split(12/2)出棧,輸出6;
最終結果12136;
split(number)方法,最終返回的是number這個值,所以split(n)出棧的輸出結果就是n
整理:
split(12/2)進棧
split(6/2)進棧
split((3+1)/2)進棧
split(2/2)進棧
split(2/2)出棧,輸出1
split((3+1)/2)出棧,輸出2
split(2/2)進棧
split(2/2)出棧,輸出1
split(6/2)出棧,輸出3
split(12/2)出棧,輸出6

7、Thread. sleep()是否會拋出checked exception?

正確答案: A

不會

題解:
Thread.sleep() 和 Object.wait(),都可以拋出 InterruptedException。這個異常是不能忽略的,因為它是一個檢查異常(checked exception)

8、下列哪個選項是正確計算42度(角度)的餘弦值?

正確答案: C

double d=Math.cos(42)

double d=Math.cosine(42)

double d=Math.cos(Math.toRadians(42))

double d=Math.cos(Math.toDegrees(42))

題解:
Math.cos為計算弧度的餘弦值,Math.toRadians函數講角度轉換為弧度

9、以下描述正確的是

正確答案: B

CallableStatement是PreparedStatement的父接口

PreparedStatement是CallableStatement的父接口

CallableStatement是Statement的父接口

PreparedStatement是Statement的父接口

題解:
public interface CallableStatement extends PreparedStatement
public interface PreparedStatement extends Statement

10、ResultSet中記錄行的第一列索引為?

正確答案: C

-1

0

1

以上都不是

題解:
ResultSet跟普通的數組不同,索引從1開始而不是從0開始

答案匯總:

1、正確答案: B

2、正確答案: A

3、正確答案: A

4、正確答案: C

5、正確答案: B

6、正確答案: A

7、正確答案: A

8、正確答案: C

9、正確答案: B

10、正確答案: C

總結

本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: