您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Java中10道日常練習題的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Integer b = 1;
Integer c = 500;
Integer d = 500;
System.out.print(a == b);
System.out.print(c == d);
上述代碼返回結果為:
正確答案: B
true、true
true、false
false、true
false、false
題解:
Interger的范圍時[-128,127],在這個范圍內比較大小,相等為true,這個范圍是被緩存了的,也就是每個對象的內存地址是相同的,賦值就直接從緩存中取,不會有新的對象產生,而大于這個范圍,將會重新創建一個Integer對象,也就是new一個對象出來,超過范圍為false
正確答案: C
參數個數
參數類型
返回值類型
參數順序
題解:
關于D的疑問:
1.參數類型不同時,順序不同也是重載,例如:
public void first(int a,double b ){}
public void first(double b2,int a2){}
2.參數類型相同時,沒有順序之分,例如:
public void first(int a,int b ){}
public void first(int b2,int a2){}
因為數據類型相同,不能說明誰前誰后,這里a,b,a2,b2,僅僅是變量名稱而已。
正確答案: D
A:用throws定義了方法可能拋出的異常,那么調用此方法時一定會拋出此異常。
B:如果try塊中沒有拋出異常,finally塊中的語句將不會被執行。
C:拋出異常意味著程序發生運行時錯誤,需要調試修改
D:Java中的可不檢測(unchecked)異常可能來自RuntimeException類或其子類。
題解:
A錯 在調用此方法的時候 也可以再次申明以將異常交由更高一級處理。
B錯 finally塊中的語句一定會被執行。除非catch塊中有System.exit(0)。
C錯 拋出異常不一定是運行時異常,也有可能是編譯時異常。
D對 運行時異常的特點是Java編譯器不會檢查它。
Exception(異常)
是程序本身可以處理的異常。主要包含RuntimeException等運行時異常和IOException,SQLException等非運行時異常。
運行時異常 包括:都是RuntimeException類及其子類異常,如NullPointerException(空指針異常)、IndexOutOfBoundsException(下標越界異常)等,這些異常是不檢查異常,程序中可以選擇捕獲處理,也可以不處理。這些異常一般是由程序邏輯錯誤引起的,程序應該從邏輯角度盡可能避免這類異常的發生。
運行時異常的特點是Java編譯器不會檢查它,也就是說,當程序中可能出現這類異常,即使沒有用try-catch語句捕獲它,也沒有用throws子句聲明拋出它,也會編譯通過。
非運行時異常(編譯異常) 包括:RuntimeException以外的異常,類型上都屬于Exception類及其子類。從程序語法角度講是必須進行處理的異常,如果不處理,程序就不能編譯通過。如IOException、SQLException等以及用戶自定義的Exception異常,一般情況下不自定義檢查異常。
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,發生case穿透現象,程序會繼續向下執行,直到遇到break或者結束switch語句的大括號為止。
當i=2時,執行程序
case2:result=4;
case3:result=4+6=10;
沒有break,就會順序執行下去
正確答案: C
A:Ant 沒有正式的約定如一個一般項目的目錄結構,你必須明確的告訴 Ant 哪里去找源代碼
B:Maven 擁有約定,因為你遵循了約定,它已經知道你的源代碼在哪里
C:maven和ant都有“生命周期”的概念,當你輸入一個命令后,maven或者ant會執行一系列的有序的步驟,直到到達你指定的生命周期
D:Ant構建文件默認命名為build.xml,Maven默認構建文件為pom.xml
題解:
Ant和Maven都是基于Java的構建(build)工具。理論上來說,有些類似于(Unix)C中的make ,但沒有make的缺陷。Ant是軟件構建工具,Maven的定位是軟件項目管理和理解工具。
Ant特點:
-沒有一個約定的目錄結構
-必須明確讓ant做什么,什么時候做,然后編譯,打包
-沒有生命周期,必須定義目標及其實現的任務序列
-沒有集成依賴管理
Maven特點 :
-擁有約定,知道你的代碼在哪里,放到哪里去
-擁有一個生命周期,例如執行 mvn install 就可以自動執行編譯,測試,打包等構建過程
-只需要定義一個pom.xml,然后把源碼放到默認的目錄,Maven幫你處理其他事情
-擁有依賴管理,倉庫管理
正確答案: A
run()
start()
sleep()
suspend()
題解:
答案是A,題目說的是執行線程,不是啟動
run()方法用來執行線程體中具體的內容
start()方法用來啟動線程對象,使其進入就緒狀態
sleep()方法用來使線程進入睡眠狀態
suspend()方法用來使線程掛起,要通過resume()方法使其重新啟動
正確答案: A B
Hashtable
Vector
TreeSet
LinkedList
題解:
LinkedList 和 ArrayList 都是不同步的,線程不安全;
Vector 和 Stack 都是同步的,線程安全;
Set是線程不安全的;
Hashtable的方法是同步的,線程安全;
HashMap的方法不是同步的,線程不安全;
WeakHashMap是非線程安全。
正確答案: A C
都實現了Map接口
Hashtable類不是同步的,而HashMap類是同步的
Hashtable不允許null鍵或值
HashMap不允許null鍵或值
題解:
總結一下HashMap和Hashtable的區別:
(1)HashMap是Hashtable的輕量級實現,它們都實現了Map接口,主要區別在于HashMap允許空(null)鍵值(key),而Hashtalbe不允許。
(2)HashMap沒有contains方法,而是containsValue和containsKey。
(3)Hashtable的方法是線程安全的,而HashMap不是線程安全的。
(4)HashMap使用Iterator,Hashtable使用Enumeration。
(5)HashMap和Hashtable采用的hash/rehash算法都幾乎一樣,所以性能不會有很大的差異。
(6)在Hashtable中,hash數組默認大小是11,增加的方式是old*2+1。在Has和Map中,hash數組的默認大小是16,而且一定是2的倍數。
(7)hash值的使用不同,Hashtable直接使用對象的hashCode。
正確答案: A C
final是java中的修飾符,可以修飾類、接口、抽象類、方法和屬性
final修飾的類肯定不能被繼承
final修飾的方法不能被重載
final修飾的變量不允許被再次賦值
題解:
1.final修飾變量,則等同于常量
2.final修飾方法中的參數,稱為最終參數。
3.final修飾類,則類不能被繼承
4.final修飾方法,則方法不能被重寫。
5.final 不能修飾抽象類
6.final修飾的方法可以被重載 但不能被重寫
正確答案: A C F
A:數組是一個對象,不同類型的數組具有不同的類
B:數組長度是可以動態調整的
C:數組是一個連續的存儲結構
D:一個固定長度的數組可類似這樣定義:int array[100]
E:兩個數組用Object 里equals方法比較時,會逐個遍歷其中的元素,對每個元素進行比較
F:java中不存在 int * a這樣的東西做數組的形參
題解:
B:數組長度不是動態的
D:一維數組的初始化:
(1)靜態初始化
1)int[] arr = new int[]{1, 2, 3}
2)int[] arr = {1, 2, 3}
(2)動態初始化
int[] arr = new int[3];
E:數組沒有重寫equals,所以還是使用的object的equals。相當于“==”。
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
感謝各位的閱讀!關于“Java中10道日常練習題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。