Java日常練習題,每天進步一點點(30)
承蒙各位厚愛,我們一起每天進步一點點!(鼠標選中空白處查看答案)
1、以下程序段的輸出結果為:
public class EqualsMethod
{
public static void main(String[] args)
{
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1 == n2);
System.out.print(“,”);
System.out.println(n1 != n2);
}
}
正確答案: B
false,false
false,true
true,false
true,true
題解:
首先 我們要知道 == 這個比較符號
==可用於基本類型和引用類型:當用於基本類型時候,是比較值是否相同;當用於引用類型的時候,是比較對象是否相同。
“==”和 “!=”比較的是地址 指第一個new()出來的地址
因為兩次new() 出的內存也不同
所以System.out.print(n1 == n2);返回 false
所以System.out.println(n1 != n2);就返回true
所以選B
2、在java7中,下列不能做switch()的參數類型是?
正確答案: D
int型
枚舉類型
字符串
浮點型
題解:
switch語句後的控制表達式隻能是short、char、int整數類型和枚舉類型,不能是float,double和boolean類型。String類型是java7開始支持。
3、以下代碼的輸出結果是?
public class B
{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println(“構造塊”);
}
static
{
System.out.println(“靜態塊”);
}
public static void main(String[] args)
{
B t = new B();
}
}
正確答案: C
靜態塊 構造塊 構造塊 構造塊
構造塊 靜態塊 構造塊 構造塊
構造塊 構造塊 靜態塊 構造塊
構造塊 構造塊 構造塊 靜態塊
題解:
開始時JVM加載B.class,對所有的靜態成員進行聲明,t1 t2被初始化為默認值,為null,又因為t1 t2需要被顯式初始化,所以對t1進行顯式初始化,初始化代碼塊→構造函數(沒有就是調用默認的構造函數),咦!靜態代碼塊咋不初始化?因為在開始時已經對static部分進行瞭初始化,雖然隻對static變量進行瞭初始化,但在初始化t1時也不會再執行static塊瞭,因為JVM認為這是第二次加載類B瞭,所以static會在t1初始化時被忽略掉,所以直接初始化非static部分,也就是構造塊部分(輸出’‘構造塊”)接著構造函數(無輸出)。接著對t2進行初始化過程同t1相同(輸出’構造塊’),此時就對所有的static變量都完成瞭初始化,接著就執行static塊部分(輸出’靜態塊’),接著執行,main方法,同樣也,new瞭對象,調用構造函數輸出(‘構造塊’),所以選C
4、What results from the following code fragment?
(翻譯:下面的代碼片段產生瞭什麼結果?)
int i = 5;
int j = 10;
System.out.println(i + ~j);
正確答案: C
Compilation error because”~”doesn’t operate on integers
-5
-6
15
題解:
公式-n=n+1可推出n=-n-1,所以~10=-11再加5結果為-6
5、對於構造方法,下列敘述正確的是( )。
正確答案: A C D
構造方法的優先級一般比代碼塊低。
構造方法的返回類型隻能是void型。
構造方法的主要作用是完成對類的對象的初始化工作。
一般在創建新對象時,系統會自動調用構造方法。
題解:
A:靜態成員變量或靜態代碼塊>main方法>非靜態成員變量或非靜態代碼塊>構造方法
B:think in java中提到構造器本身並沒有任何返回值。
C: 構造方法的主要作用是完成對類的對象的初始化工作。
D: 一般在創建(new)新對象時,系統會自動調用構造方法。
6、JDK1.7版本之前,接口和抽象類描述正確的有( )
正確答案: B C
抽象類沒有構造函數。
接口沒有構造函數。
抽象類不允許多繼承。
接口中的方法可以有方法體。
題解:
A.抽象類可以有構造方法,隻是不能直接創建抽象類的實例對象而已
B.在接口中 不可以有構造方法,在接口裡寫入構造方法時,編譯器提示:Interfaces cannot have constructors。
C.Java不允許類多重繼承
D.jdk1.8後接口中的方法可以有方法體,jdk1.8之前不可以有方法體
7、以下關於JAVA語言異常處理描述正確的有?
正確答案: C D
throw關鍵字可以在方法上聲明該方法要拋出的異常。
throws用於拋出異常對象。
try是用於檢測被包住的語句塊是否出現異常,如果有異常,則拋出異常,並執行catch語句。
finally語句塊是不管有沒有出現異常都要執行的內容。
在try塊中不可以拋出異常
題解:
Java語言中的異常處理包括聲明異常、拋出異常、捕獲異常和處理異常四個環節。
throw用於拋出異常。
throws關鍵字可以在方法上聲明該方法要拋出的異常,然後在方法內部通過throw拋出異常對象。
try是用於檢測被包住的語句塊是否出現異常,如果有異常,則拋出異常,並執行catch語句。
cacth用於捕獲從try中拋出的異常並作出處理。
finally語句塊是不管有沒有出現異常都要執行的內容。
8、下面程序輸出結果為():
public class Demo{
public static void main (String [] args) {
String lx = “LeXin”;
String nb = lx;
lx = “Fenqile”;
System.out.println(nb);
}
}
正確答案: B C
程序異常,編譯不通過
程序編寫正常,可正常運行
程序輸出值為“LeXin”
程序輸出值為“Fenqile”
題解:
很顯然是把“LeXin”的值賦給瞭nb
9、java中關於繼承的描述正確的是()
正確答案: A C D
一個子類隻能繼承一個父類
子類可以繼承父類的構造方法
繼承具有傳遞性
父類一般具有通用性,子類更具體
題解:
子類不可以繼承父類的構造方法,隻可以調用父類的構造方法。子類中所有的構造函數都會默認訪問父類中的空參數構造函數,這是因為子類的構造函數內第一行都有默認的super()語句。
10、What is Static Method in Java()
正確答案: A B C
It is a method which belongs to the class and not to the object(instance)
A static method can access only static data. It can not access non-static data (instance variables)
A static method can call only other static methods and can not call a non-static method from it.
A static method can not be accessed directly by the class name and doesn’t need any object
題解:
A:靜態方法是一個屬於類而不屬於對象(實例)的方法。(√)
B:靜態方法隻能訪問靜態數據。無法訪問非靜態數據(實例變量)。(√)
C:靜態方法隻能調用其他靜態方法,不能從中調用非靜態方法。(√)
D:靜態方法不能通過類名直接訪問,也不需要任何對象。(×) 靜態方法可以直接用類名訪問。
答案匯總:
1、正確答案: B
2、正確答案: D
3、正確答案: C
4、正確答案: C
5、正確答案: A C D
6、正確答案: B C
7、正確答案: C D
8、正確答案: B C
9、正確答案: A C D
10、正確答案:A B C
總結
本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!