Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(30)
承蒙各位厚愛,我們一起每天進(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()出來的地址
因?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開始支持。
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)塊
題解:
開始時(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ù)(沒有就是調(diào)用默認(rèn)的構(gòu)造函數(shù)),咦!靜態(tài)代碼塊咋不初始化?因?yàn)樵陂_始時(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ù)(無輸出)。接著對(duì)t2進(jìn)行初始化過程同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)造器本身并沒有任何返回值。
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
抽象類沒有構(gòu)造函數(shù)。
接口沒有構(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ǔ)句塊是不管有沒有出現(xiàn)異常都要執(zhí)行的內(nèi)容。
在try塊中不可以拋出異常
題解:
Java語(yǔ)言中的異常處理包括聲明異常、拋出異常、捕獲異常和處理異常四個(gè)環(huán)節(jié)。
throw用于拋出異常。
throws關(guān)鍵字可以在方法上聲明該方法要拋出的異常,然后在方法內(nèi)部通過throw拋出異常對(duì)象。
try是用于檢測(cè)被包住的語(yǔ)句塊是否出現(xiàn)異常,如果有異常,則拋出異常,并執(zhí)行catch語(yǔ)句。
cacth用于捕獲從try中拋出的異常并作出處理。
finally語(yǔ)句塊是不管有沒有出現(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
程序異常,編譯不通過
程序編寫正常,可正常運(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)訪問父類中的空參數(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)方法只能訪問靜態(tài)數(shù)據(jù)。無法訪問非靜態(tài)數(shù)據(jù)(實(shí)例變量)。(√)
C:靜態(tài)方法只能調(diào)用其他靜態(tài)方法,不能從中調(diào)用非靜態(tài)方法。(√)
D:靜態(tài)方法不能通過類名直接訪問,也不需要任何對(duì)象。(×) 靜態(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)文章
SpringBoot使用Kaptcha實(shí)現(xiàn)驗(yàn)證碼的生成與驗(yàn)證功能
這篇文章主要介紹了SpringBoot使用Kaptcha實(shí)現(xiàn)驗(yàn)證碼的生成與驗(yàn)證功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
SpringMVC?bean加載控制的實(shí)現(xiàn)分析
SpringMVC是一種基于Java,實(shí)現(xiàn)了Web?MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡?qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開發(fā),SpringMVC也是要簡(jiǎn)化我們?nèi)粘eb開發(fā)2023-02-02
詳解Java編程中Annotation注解對(duì)象的使用方法
這篇文章主要介紹了Java編程中Annotation注解對(duì)象的使用方法,注解以"@注解名"的方式被編寫,與類、接口、枚舉是在同一個(gè)層次,需要的朋友可以參考下2016-03-03
Spring配置數(shù)據(jù)源的三種方式(小結(jié))
本文主要介紹了Spring配置數(shù)據(jù)源的三種方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
使用@ConfigurationProperties注解獲取為null的解決方法
在SpringBoot中,當(dāng)想需要獲取到配置文件數(shù)據(jù)時(shí),除了可以用 Spring 自帶的@Value注解外,SpringBoot還提供了一種更加方便的方式:@ConfigurationProperties,但我們?cè)谕ㄟ^通過get方法去取值一直為null,本文介紹了使用@ConfigurationProperties注解獲取為null的解決方法2024-09-09
SpringBoot @Validated注解實(shí)現(xiàn)參數(shù)分組校驗(yàn)的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于SpringBoot @Validated注解實(shí)現(xiàn)參數(shù)分組校驗(yàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09

