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