Java日常練習(xí)題,每天進步一點點(30)
承蒙各位厚愛,我們一起每天進步一點點!(鼠標(biāo)選中空白處查看答案)
1、以下程序段的輸出結(jié)果為:
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
題解:
首先 我們要知道 == 這個比較符號
==可用于基本類型和引用類型:當(dāng)用于基本類型時候,是比較值是否相同;當(dāng)用于引用類型的時候,是比較對象是否相同。
"=="和 "!="比較的是地址 指第一個new()出來的地址
因為兩次new() 出的內(nèi)存也不同
所以System.out.print(n1 == n2);返回 false
所以System.out.println(n1 != n2);就返回true
所以選B
2、在java7中,下列不能做switch()的參數(shù)類型是?
正確答案: D
int型
枚舉類型
字符串
浮點型
題解:
switch語句后的控制表達(dá)式只能是short、char、int整數(shù)類型和枚舉類型,不能是float,double和boolean類型。String類型是java7開始支持。
3、以下代碼的輸出結(jié)果是?
public class B
{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println(“構(gòu)造塊”);
}
static
{
System.out.println(“靜態(tài)塊”);
}
public static void main(String[] args)
{
B t = new B();
}
}
正確答案: C
靜態(tài)塊 構(gòu)造塊 構(gòu)造塊 構(gòu)造塊
構(gòu)造塊 靜態(tài)塊 構(gòu)造塊 構(gòu)造塊
構(gòu)造塊 構(gòu)造塊 靜態(tài)塊 構(gòu)造塊
構(gòu)造塊 構(gòu)造塊 構(gòu)造塊 靜態(tài)塊
題解:
開始時JVM加載B.class,對所有的靜態(tài)成員進行聲明,t1 t2被初始化為默認(rèn)值,為null,又因為t1 t2需要被顯式初始化,所以對t1進行顯式初始化,初始化代碼塊→構(gòu)造函數(shù)(沒有就是調(diào)用默認(rèn)的構(gòu)造函數(shù)),咦!靜態(tài)代碼塊咋不初始化?因為在開始時已經(jīng)對static部分進行了初始化,雖然只對static變量進行了初始化,但在初始化t1時也不會再執(zhí)行static塊了,因為JVM認(rèn)為這是第二次加載類B了,所以static會在t1初始化時被忽略掉,所以直接初始化非static部分,也就是構(gòu)造塊部分(輸出'‘構(gòu)造塊'')接著構(gòu)造函數(shù)(無輸出)。接著對t2進行初始化過程同t1相同(輸出'構(gòu)造塊'),此時就對所有的static變量都完成了初始化,接著就執(zhí)行static塊部分(輸出'靜態(tài)塊'),接著執(zhí)行,main方法,同樣也,new了對象,調(diào)用構(gòu)造函數(shù)輸出(‘構(gòu)造塊'),所以選C
4、What results from the following code fragment?
(翻譯:下面的代碼片段產(chǎn)生了什么結(jié)果?)
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結(jié)果為-6
5、對于構(gòu)造方法,下列敘述正確的是( )。
正確答案: A C D
構(gòu)造方法的優(yōu)先級一般比代碼塊低。
構(gòu)造方法的返回類型只能是void型。
構(gòu)造方法的主要作用是完成對類的對象的初始化工作。
一般在創(chuàng)建新對象時,系統(tǒng)會自動調(diào)用構(gòu)造方法。
題解:
A:靜態(tài)成員變量或靜態(tài)代碼塊>main方法>非靜態(tài)成員變量或非靜態(tài)代碼塊>構(gòu)造方法
B:think in java中提到構(gòu)造器本身并沒有任何返回值。
C: 構(gòu)造方法的主要作用是完成對類的對象的初始化工作。
D: 一般在創(chuàng)建(new)新對象時,系統(tǒng)會自動調(diào)用構(gòu)造方法。
6、JDK1.7版本之前,接口和抽象類描述正確的有( )
正確答案: B C
抽象類沒有構(gòu)造函數(shù)。
接口沒有構(gòu)造函數(shù)。
抽象類不允許多繼承。
接口中的方法可以有方法體。
題解:
A.抽象類可以有構(gòu)造方法,只是不能直接創(chuàng)建抽象類的實例對象而已
B.在接口中 不可以有構(gòu)造方法,在接口里寫入構(gòu)造方法時,編譯器提示:Interfaces cannot have constructors。
C.Java不允許類多重繼承
D.jdk1.8后接口中的方法可以有方法體,jdk1.8之前不可以有方法體
7、以下關(guān)于JAVA語言異常處理描述正確的有?
正確答案: C D
throw關(guān)鍵字可以在方法上聲明該方法要拋出的異常。
throws用于拋出異常對象。
try是用于檢測被包住的語句塊是否出現(xiàn)異常,如果有異常,則拋出異常,并執(zhí)行catch語句。
finally語句塊是不管有沒有出現(xiàn)異常都要執(zhí)行的內(nèi)容。
在try塊中不可以拋出異常
題解:
Java語言中的異常處理包括聲明異常、拋出異常、捕獲異常和處理異常四個環(huán)節(jié)。
throw用于拋出異常。
throws關(guān)鍵字可以在方法上聲明該方法要拋出的異常,然后在方法內(nèi)部通過throw拋出異常對象。
try是用于檢測被包住的語句塊是否出現(xiàn)異常,如果有異常,則拋出異常,并執(zhí)行catch語句。
cacth用于捕獲從try中拋出的異常并作出處理。
finally語句塊是不管有沒有出現(xiàn)異常都要執(zhí)行的內(nèi)容。
8、下面程序輸出結(jié)果為():
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中關(guān)于繼承的描述正確的是()
正確答案: A C D
一個子類只能繼承一個父類
子類可以繼承父類的構(gòu)造方法
繼承具有傳遞性
父類一般具有通用性,子類更具體
題解:
子類不可以繼承父類的構(gòu)造方法,只可以調(diào)用父類的構(gòu)造方法。子類中所有的構(gòu)造函數(shù)都會默認(rèn)訪問父類中的空參數(shù)構(gòu)造函數(shù),這是因為子類的構(gòu)造函數(shù)內(nèi)第一行都有默認(rèn)的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:靜態(tài)方法是一個屬于類而不屬于對象(實例)的方法。(√)
B:靜態(tài)方法只能訪問靜態(tài)數(shù)據(jù)。無法訪問非靜態(tài)數(shù)據(jù)(實例變量)。(√)
C:靜態(tài)方法只能調(diào)用其他靜態(tài)方法,不能從中調(diào)用非靜態(tài)方法。(√)
D:靜態(tài)方法不能通過類名直接訪問,也不需要任何對象。(×) 靜態(tài)方法可以直接用類名訪問。
答案匯總:
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
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
通過反射注解批量插入數(shù)據(jù)到DB的實現(xiàn)方法
今天小編就為大家分享一篇關(guān)于通過反射注解批量插入數(shù)據(jù)到DB的實現(xiàn)方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03學(xué)習(xí)Java之如何正確地跳出循環(huán)結(jié)構(gòu)
我們在利用循環(huán)執(zhí)行重復(fù)操作的過程中,存在著一個需求:如何中止,或者說提前結(jié)束一個循環(huán),所以就給大家講解一下,如何在java代碼中返回一個結(jié)果,如何結(jié)束和跳出一個循環(huán),需要的朋友可以參考下2023-05-05在Spring AOP中代理對象創(chuàng)建的步驟詳解
今天和小伙伴們聊一聊 Spring AOP 中的代理對象是怎么創(chuàng)建出來的,透過這個過程再去熟悉一下 Bean 的創(chuàng)建過程,感興趣的小伙伴跟著小編一起來看看吧2023-08-08MyBatisPlus+Lombok實現(xiàn)分頁功能的方法詳解
Lombok是一個Java類庫,提供了一組注解,簡化POJO實體類開發(fā)。本文將為大家介紹一下Lombok的使用以及如何利用MyBatisPlus+Lombok實現(xiàn)分頁功能,感興趣的可以動手嘗試一下2022-07-07