溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中10道日常練習(xí)題

發(fā)布時(shí)間:2021-07-27 13:45:44 來源:億速云 閱讀:129 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Java中10道日常練習(xí)題的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

    1、Integer a = 1;

    Integer b = 1;

    Integer c = 500;

    Integer d = 500;

    System.out.print(a == b);

    System.out.print(c == d);

    上述代碼返回結(jié)果為:

    正確答案: B

    true、true

    true、false

    false、true

    false、false

    題解:
    Interger的范圍時(shí)[-128,127],在這個(gè)范圍內(nèi)比較大小,相等為true,這個(gè)范圍是被緩存了的,也就是每個(gè)對(duì)象的內(nèi)存地址是相同的,賦值就直接從緩存中取,不會(huì)有新的對(duì)象產(chǎn)生,而大于這個(gè)范圍,將會(huì)重新創(chuàng)建一個(gè)Integer對(duì)象,也就是new一個(gè)對(duì)象出來,超過范圍為false

    2、對(duì)于同一類中的兩個(gè)方法 , 在判斷它們是不是重載方法時(shí) , 肯定不考慮( )

    正確答案: C

    參數(shù)個(gè)數(shù)

    參數(shù)類型

    返回值類型

    參數(shù)順序

    題解:
    Java中10道日常練習(xí)題
    關(guān)于D的疑問:
    1.參數(shù)類型不同時(shí),順序不同也是重載,例如:
    public void first(int a,double b ){}
    public void first(double b2,int a2){}
    2.參數(shù)類型相同時(shí),沒有順序之分,例如:
    public void first(int a,int b ){}
    public void first(int b2,int a2){}
    因?yàn)閿?shù)據(jù)類型相同,不能說明誰前誰后,這里a,b,a2,b2,僅僅是變量名稱而已。

    3、對(duì)于Java中異常的描述正確的是( )

    正確答案: D

    A:用throws定義了方法可能拋出的異常,那么調(diào)用此方法時(shí)一定會(huì)拋出此異常。

    B:如果try塊中沒有拋出異常,finally塊中的語句將不會(huì)被執(zhí)行。

    C:拋出異常意味著程序發(fā)生運(yùn)行時(shí)錯(cuò)誤,需要調(diào)試修改

    D:Java中的可不檢測(cè)(unchecked)異??赡軄碜訰untimeException類或其子類。

    題解:
    A錯(cuò) 在調(diào)用此方法的時(shí)候 也可以再次申明以將異常交由更高一級(jí)處理。
    B錯(cuò) finally塊中的語句一定會(huì)被執(zhí)行。除非catch塊中有System.exit(0)。
    C錯(cuò) 拋出異常不一定是運(yùn)行時(shí)異常,也有可能是編譯時(shí)異常。
    D對(duì) 運(yùn)行時(shí)異常的特點(diǎn)是Java編譯器不會(huì)檢查它。
    Exception(異常)
    是程序本身可以處理的異常。主要包含RuntimeException等運(yùn)行時(shí)異常和IOException,SQLException等非運(yùn)行時(shí)異常。
    運(yùn)行時(shí)異常 包括:都是RuntimeException類及其子類異常,如NullPointerException(空指針異常)、IndexOutOfBoundsException(下標(biāo)越界異常)等,這些異常是不檢查異常,程序中可以選擇捕獲處理,也可以不處理。這些異常一般是由程序邏輯錯(cuò)誤引起的,程序應(yīng)該從邏輯角度盡可能避免這類異常的發(fā)生。
    運(yùn)行時(shí)異常的特點(diǎn)是Java編譯器不會(huì)檢查它,也就是說,當(dāng)程序中可能出現(xiàn)這類異常,即使沒有用try-catch語句捕獲它,也沒有用throws子句聲明拋出它,也會(huì)編譯通過。
    非運(yùn)行時(shí)異常(編譯異常) 包括:RuntimeException以外的異常,類型上都屬于Exception類及其子類。從程序語法角度講是必須進(jìn)行處理的異常,如果不處理,程序就不能編譯通過。如IOException、SQLException等以及用戶自定義的Exception異常,一般情況下不自定義檢查異常。

    4、下面的方法,當(dāng)輸入為2的時(shí)候返回值是多少?

    public static int getValue(int i) {

    int result = 0;

    switch (i) {

    case 1:

    result = result + i;

    case 2:

    result = result + i * 2;

    case 3:

    result = result + i * 3;

    }

    return result;

    }

    正確答案: D

    0

    2

    4

    10

    題解:
    沒有break,發(fā)生case穿透現(xiàn)象,程序會(huì)繼續(xù)向下執(zhí)行,直到遇到break或者結(jié)束switch語句的大括號(hào)為止。
    當(dāng)i=2時(shí),執(zhí)行程序
    case2:result=4;
    case3:result=4+6=10;
    沒有break,就會(huì)順序執(zhí)行下去

    5、下面有關(guān) maven和ant的描述,描述錯(cuò)誤的是?

    正確答案: C

    A:Ant 沒有正式的約定如一個(gè)一般項(xiàng)目的目錄結(jié)構(gòu),你必須明確的告訴 Ant 哪里去找源代碼

    B:Maven 擁有約定,因?yàn)槟阕裱思s定,它已經(jīng)知道你的源代碼在哪里

    C:maven和ant都有“生命周期”的概念,當(dāng)你輸入一個(gè)命令后,maven或者ant會(huì)執(zhí)行一系列的有序的步驟,直到到達(dá)你指定的生命周期

    D:Ant構(gòu)建文件默認(rèn)命名為build.xml,Maven默認(rèn)構(gòu)建文件為pom.xml

    題解:
    Ant和Maven都是基于Java的構(gòu)建(build)工具。理論上來說,有些類似于(Unix)C中的make ,但沒有make的缺陷。Ant是軟件構(gòu)建工具,Maven的定位是軟件項(xiàng)目管理和理解工具。
    Ant特點(diǎn):
    -沒有一個(gè)約定的目錄結(jié)構(gòu)
    -必須明確讓ant做什么,什么時(shí)候做,然后編譯,打包
    -沒有生命周期,必須定義目標(biāo)及其實(shí)現(xiàn)的任務(wù)序列
    -沒有集成依賴管理
    Maven特點(diǎn) :
    -擁有約定,知道你的代碼在哪里,放到哪里去
    -擁有一個(gè)生命周期,例如執(zhí)行 mvn install 就可以自動(dòng)執(zhí)行編譯,測(cè)試,打包等構(gòu)建過程
    -只需要定義一個(gè)pom.xml,然后把源碼放到默認(rèn)的目錄,Maven幫你處理其他事情
    -擁有依賴管理,倉庫管理

    6、下列方法中哪個(gè)是執(zhí)行線程的方法? ()

    正確答案: A

    run()

    start()

    sleep()

    suspend()

    題解:
    答案是A,題目說的是執(zhí)行線程,不是啟動(dòng)
    run()方法用來執(zhí)行線程體中具體的內(nèi)容
    start()方法用來啟動(dòng)線程對(duì)象,使其進(jìn)入就緒狀態(tài)
    sleep()方法用來使線程進(jìn)入睡眠狀態(tài)
    suspend()方法用來使線程掛起,要通過resume()方法使其重新啟動(dòng)

    7、java中Hashtable, Vector, TreeSet, LinkedList哪些線程是安全的?

    正確答案: A B

    Hashtable

    Vector

    TreeSet

    LinkedList

    題解:
    Java中10道日常練習(xí)題
    LinkedList 和 ArrayList 都是不同步的,線程不安全;
    Vector 和 Stack 都是同步的,線程安全;
    Set是線程不安全的;
     
    Hashtable的方法是同步的,線程安全;
    HashMap的方法不是同步的,線程不安全;
    WeakHashMap是非線程安全。

    8、關(guān)于HashMap和Hashtable正確的說法有()

    正確答案: A C

    都實(shí)現(xiàn)了Map接口

    Hashtable類不是同步的,而HashMap類是同步的

    Hashtable不允許null鍵或值

    HashMap不允許null鍵或值

    題解:
    總結(jié)一下HashMap和Hashtable的區(qū)別:
    (1)HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn),它們都實(shí)現(xiàn)了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),而Hashtalbe不允許。
    (2)HashMap沒有contains方法,而是containsValue和containsKey。
    (3)Hashtable的方法是線程安全的,而HashMap不是線程安全的。
    (4)HashMap使用Iterator,Hashtable使用Enumeration。
    (5)HashMap和Hashtable采用的hash/rehash算法都幾乎一樣,所以性能不會(huì)有很大的差異。
    (6)在Hashtable中,hash數(shù)組默認(rèn)大小是11,增加的方式是old*2+1。在Has和Map中,hash數(shù)組的默認(rèn)大小是16,而且一定是2的倍數(shù)。
    (7)hash值的使用不同,Hashtable直接使用對(duì)象的hashCode。

    9、以下關(guān)于final關(guān)鍵字說法錯(cuò)誤的是()

    正確答案: A C

    final是java中的修飾符,可以修飾類、接口、抽象類、方法和屬性

    final修飾的類肯定不能被繼承

    final修飾的方法不能被重載

    final修飾的變量不允許被再次賦值

    題解:
    1.final修飾變量,則等同于常量
    2.final修飾方法中的參數(shù),稱為最終參數(shù)。
    3.final修飾類,則類不能被繼承
    4.final修飾方法,則方法不能被重寫。
    5.final 不能修飾抽象類
    6.final修飾的方法可以被重載 但不能被重寫

    10、關(guān)于java中的數(shù)組,下面的一些描述,哪些描述是準(zhǔn)確的:()

    正確答案: A C F

    A:數(shù)組是一個(gè)對(duì)象,不同類型的數(shù)組具有不同的類

    B:數(shù)組長度是可以動(dòng)態(tài)調(diào)整的

    C:數(shù)組是一個(gè)連續(xù)的存儲(chǔ)結(jié)構(gòu)

    D:一個(gè)固定長度的數(shù)組可類似這樣定義:int array[100]

    E:兩個(gè)數(shù)組用Object 里equals方法比較時(shí),會(huì)逐個(gè)遍歷其中的元素,對(duì)每個(gè)元素進(jìn)行比較

    F:java中不存在 int * a這樣的東西做數(shù)組的形參

    題解:
    B:數(shù)組長度不是動(dòng)態(tài)的
    D:一維數(shù)組的初始化:
    (1)靜態(tài)初始化
    1)int[] arr = new int[]{1, 2, 3}
    2)int[] arr = {1, 2, 3}
    (2)動(dòng)態(tài)初始化
    int[] arr = new int[3];
    E:數(shù)組沒有重寫equals,所以還是使用的object的equals。相當(dāng)于“==”。

    答案匯總:

    1、正確答案: B

    2、正確答案: C

    3、正確答案: D

    4、正確答案: D

    5、正確答案: C

    6、正確答案: A

    7、正確答案: A B

    8、正確答案: A C

    9、正確答案: A C

    10、正確答案: A C F

    感謝各位的閱讀!關(guān)于“Java中10道日常練習(xí)題”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI