承蒙各位厚愛(ài),我們一起每天進(jìn)步一點(diǎn)點(diǎn)!(鼠標(biāo)選中空白處查看答案)
1、如果類(lèi)的方法沒(méi)有返回值,該方法的返回值類(lèi)型應(yīng)當(dāng)是abstract。()
正確答案:B
A 正確
B 錯(cuò)誤
題解:
1、 沒(méi)有返回值就是不返回任何東西 abstract肯定是錯(cuò)的了 void返回值為空 所以說(shuō)的是構(gòu)造函數(shù)吧
2、 選B,沒(méi)有返回值,該方法的返回值類(lèi)型為void
2、代碼String str=”123456a”;int i=Integer.parseInt(str);會(huì)報(bào)異常的是()
正確答案:B
A java.lang.NullPoninterException
B java.lang.NumberFormatException
C java.lang.RuntimeException
D java.lang.ArrayindexOutOfBoundsException
題解:
1、非純數(shù)字的字符串轉(zhuǎn)化為Integer對(duì)象會(huì)報(bào)數(shù)字格式異常。
2、 java.lang.NullPoninterException:變量未被初始化、對(duì)象未賦值、對(duì)象為空(俗稱(chēng)的空指針異常) java.lang.NumberFormatException:數(shù)據(jù)格式轉(zhuǎn)換失敗(integer的取值范圍為:-127-128,超過(guò)范圍都會(huì)訪問(wèn)false) java.lang.RuntimeException:運(yùn)行時(shí)異常 java.lang.ArrayindexOutOfBoundsException:數(shù)組下標(biāo)越界
3、 parseInt 是將字符串參數(shù)解析為帶符號(hào)的十進(jìn)制整數(shù)。 字符串中的字符都必須是十進(jìn)制數(shù)字,除了第一個(gè)字符可能是ASCII減號(hào)'-' ( ‘\u002D' )以指示負(fù)值或ASCII加號(hào)'+' ( ‘\u002B' )以指示正值。 返回所得到的整數(shù)值,就像參數(shù)和小數(shù)10被賦予parseInt(java.lang.String
4、 int)方法的參數(shù)一樣。
3、以下哪個(gè)方法用于定義線程的執(zhí)行體?
正確答案:C
A start()
B init()
C run()
D synchronized()
題解:
1、run()相當(dāng)于線程的任務(wù)處理邏輯的入口方法,它由Java虛擬機(jī)在運(yùn)行相應(yīng)線程時(shí)直接調(diào)用,而不是由應(yīng)用代碼進(jìn)行調(diào)用。 而start()的作用是啟動(dòng)相應(yīng)的線程。啟動(dòng)一個(gè)線程實(shí)際是請(qǐng)求Java虛擬機(jī)運(yùn)行相應(yīng)的線程,而這個(gè)線程何時(shí)能夠運(yùn)行是由線程調(diào)度器決定的。start()調(diào)用結(jié)束并不表示相應(yīng)線程已經(jīng)開(kāi)始運(yùn)行,這個(gè)線程可能稍后運(yùn)行,也可能永遠(yuǎn)也不會(huì)運(yùn)行。
2、 run方法線程執(zhí)行體.start方法開(kāi)啟多線程
3、 WCNBD!
4、在Java中,什么是Garbage Collection?()
正確答案:C
A 自動(dòng)刪除在程序中導(dǎo)入但未使用的任何包
B JVM檢查任何Java程序的輸出并刪除任何沒(méi)有意義的東西
C 當(dāng)對(duì)象的所有引用都消失后,對(duì)象使用的內(nèi)存將自動(dòng)回收
D 操作系統(tǒng)定期刪除系統(tǒng)上可用的所有java文件
題解:
1、 garbage collection 垃圾回收
5、判斷對(duì)錯(cuò)。List,Set,Map都繼承自繼承Collection接口。
正確答案:B
A 對(duì)
B 錯(cuò)
題解:
Map是獨(dú)立的接口,不繼承Collection接口
6、關(guān)于下面程序,哪些描述是正確的: ( ) public class While {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public void loop() { int x= 10 ; while ( x ) { System.out.print( "x minus one is " + (x - 1 )); x -= 1 ; } } } |
正確答案:B
A 行1有語(yǔ)法錯(cuò)誤
B 行4有語(yǔ)法錯(cuò)誤
C 行5有語(yǔ)法錯(cuò)誤
D 行6有語(yǔ)法錯(cuò)誤
E 行2有語(yǔ)法錯(cuò)誤
Floop是關(guān)鍵字
G 程序能夠正常編譯和運(yùn)行
題解:
1、這個(gè)題主要考while()中表達(dá)式的判斷,在C語(yǔ)言中大于0的int值都會(huì)被認(rèn)為是true,而java中沒(méi)有這個(gè)機(jī)制,必須是boolean類(lèi)型的。
2、 while()括號(hào)里參數(shù)必須是布爾類(lèi)型,要么true要么false
3、 loop 不是java 的關(guān)鍵字 問(wèn)題出在 wile( boolean ) x 是一個(gè)int 形的變量 不是Boolean 值 所有編譯不通過(guò)
7、若有下列定義,下列哪個(gè)表達(dá)式返回false? String s = “hello”; String t = “hello”; char c = {‘h',‘e',‘l',‘l',‘o'} ;
正確答案:B
A s.equals(t);
B t.equals©;
C s==t;
D t.equals(new String(“hello”));
題解:
1、 看了一堆解析,不懂別亂說(shuō)ok. 看底層源碼 此處有判斷這個(gè)參數(shù)是不是String的實(shí)例,不是不執(zhí)行判斷最后返回false,char數(shù)組是一種對(duì)象類(lèi)型不是String類(lèi)型的實(shí)例,直接跳過(guò)比較返回false
2、 選B。 A、D選項(xiàng)是對(duì)字符串內(nèi)容的比較。JVM為了減少字符串對(duì)象的重復(fù)創(chuàng)建,其維護(hù)了一個(gè)特殊的內(nèi)存,這段內(nèi)存被成為字符串常量池。代碼中出現(xiàn)字面量形式創(chuàng)建字符串對(duì)象時(shí),JVM首先會(huì)對(duì)這個(gè)字面量進(jìn)行檢查,如果字符串常量池中存在相同內(nèi)容的字符串對(duì)象的引用,則將這個(gè)引用返回,否則新的字符串對(duì)象被創(chuàng)建,然后將這個(gè)引用放入字符串常量池,并返回該引用。所以返回true。 C選項(xiàng)是引用地址的比較,同上也屬于常量池的同一個(gè)字符串地址,所以相等返回true。
8、關(guān)于Java中參數(shù)傳遞的說(shuō)法,哪個(gè)是錯(cuò)誤的?
正確答案:D
A 在方法中,修改一個(gè)基礎(chǔ)類(lèi)型的參數(shù)不會(huì)影響原始參數(shù)值
B 在方法中,改變一個(gè)對(duì)象參數(shù)的引用不會(huì)影響到原始引用
C 在方法中,修改一個(gè)對(duì)象的屬性會(huì)影響原始對(duì)象參數(shù)
D 在方法中,修改集合和Maps的元素不會(huì)影響原始集合參數(shù)
題解:
答案: D
解析: 注意!Java中方法的參數(shù)傳遞都是值傳遞
A. 在方法中,修改一個(gè)基礎(chǔ)類(lèi)型的參數(shù)不會(huì)影響原始參數(shù)值
public static void main(String []args){
int i = 5;
func(i);
System.out.println(i);
}
static void func(int j){
j = 10;
}
//輸出結(jié)果
5
在主方法調(diào)用func(int j) 時(shí) , 參數(shù)i是實(shí)際參數(shù) , 值為5 , 參數(shù)j是形式參數(shù) , 值是i給的 , 也是5 , i和j沒(méi)有任何關(guān)系 , 是兩個(gè)獨(dú)立的參數(shù) , 所以修改j的值時(shí)與i沒(méi)有關(guān)系 , 仍然輸出5。
B. 在方法中,改變一個(gè)對(duì)象參數(shù)的引用不會(huì)影響到原始引用
public static void main(String []args){
User rabbiter = new User();
rabbiter.setName(“rabbiter”);
func(rabbiter);
System.out.println(rabbiter.getName());
}
static void func(User user){
user = new User();
user.setName(“zhangsan”);
}
//輸出結(jié)果
rabbiter
在主方法調(diào)用func(User user) 時(shí) , 對(duì)象rabbiter保存的是一個(gè)地址值 , 本質(zhì)上就是把rabbiter的地址值給了形參user , 所以此時(shí)實(shí)參rabbiter和形參user指向在堆中的同一個(gè)對(duì)象 , 他們的地址值相同 , 只是指向的對(duì)象一致 , 所以并不違反值傳遞的理論。
此時(shí) , 如果修改形參user , new一個(gè)新的對(duì)象并讓user指向它 , 修改的只是形參保存的地址 , 與實(shí)參rabbiter無(wú)關(guān) , rabbiter指向的對(duì)象仍然是之前的那個(gè)對(duì)象。
C. 在方法中,修改一個(gè)對(duì)象的屬性會(huì)影響原始對(duì)象參數(shù)
public static void main(String []args){
User rabbiter = new User();
rabbiter.setName(“rabbiter”);
func(rabbiter);
System.out.println(rabbiter.getName());
}
static void func(User user){
user.setName(“zhangsan”);
}
//輸出結(jié)果
zhangsan
在主方法調(diào)用func(User user) 時(shí) , 對(duì)象rabbiter保存的是一個(gè)地址值 , 本質(zhì)上就是把rabbiter的地址值給了形參user , 所以此時(shí)實(shí)參rabbiter和形參user指向在堆中的同一個(gè)對(duì)象 , 他們的地址值相同 , 指向的對(duì)象一致 , 所以并不違反值傳遞的理論。
那么user對(duì)其指向的對(duì)象的屬性name進(jìn)行修改 , rabbiter指向的對(duì)象的name屬性也就被修改了。
D. 在方法中,修改集合和Maps的元素不會(huì)影響原始集合參數(shù)
集合和Maps都是對(duì)象 , 所以此項(xiàng)跟C選項(xiàng)的解析一致。
9、下面有關(guān)JAVA異常類(lèi)的描述,說(shuō)法錯(cuò)誤的是?
正確答案:D
A 異常的繼承結(jié)構(gòu):基類(lèi)為T(mén)hrowable,Error和Exception繼承Throwable,RuntimeException和IOException等繼承Exception
B 非RuntimeException一般是外部錯(cuò)誤(非Error),其一般被 try{}catch語(yǔ)句塊所捕獲
C Error類(lèi)體系描述了Java運(yùn)行系統(tǒng)中的內(nèi)部錯(cuò)誤以及資源耗盡的情形,Error不需要捕捉
D RuntimeException體系包括錯(cuò)誤的類(lèi)型轉(zhuǎn)換、數(shù)組越界訪問(wèn)和試圖訪問(wèn)空指針等等,必須被 try{}catch語(yǔ)句塊所捕獲
題解:
1、運(yùn)行時(shí)異常故名思議就是程序在運(yùn)行的時(shí)候出現(xiàn)異常,隱含的一個(gè)前提就是程序在編譯時(shí)是檢測(cè)不到異常的存在,作者本人也并不知道是否自己的代碼中含有運(yùn)行時(shí)異常,所以根本也不可能提前使用try{}catch{}捕獲.
2、 異常是指程序運(yùn)行時(shí)(非編譯)所發(fā)生的非正常情況或錯(cuò)誤,當(dāng)程序違反了語(yǔ)音規(guī)則,jvm就會(huì)將出現(xiàn)的錯(cuò)誤表示一個(gè)異常拋出。 異常也是java 的對(duì)象,定義了基類(lèi) java。lang。throwable作為異常父類(lèi)。 這些異常類(lèi)又包括error和exception。兩大類(lèi) error類(lèi)異常主要是運(yùn)行時(shí)邏輯錯(cuò)誤導(dǎo)致,一個(gè)正確程序中是不應(yīng)該出現(xiàn)error的。當(dāng)出現(xiàn)error一般jvm會(huì)終止。 exception表示可恢復(fù)異常,包括檢查異常和運(yùn)行時(shí)異常。 檢查異常是最常見(jiàn)異常比如 io異常sql異常,都發(fā)生在編譯階段。這類(lèi)通過(guò)try、catch捕捉 而運(yùn)行時(shí)異常,編譯器沒(méi)有強(qiáng)制對(duì)其進(jìn)行捕捉和處理。一般都會(huì)把異常向上拋出,直到遇到處理代碼位置,若沒(méi)有處理塊就會(huì)拋到最上層,多線程用thread。run()拋出,單線程用main()拋出。常見(jiàn)的運(yùn)行異常包括 空指針異常 類(lèi)型轉(zhuǎn)換異常 數(shù)組月結(jié)異常 數(shù)組存儲(chǔ)異常 緩沖區(qū)溢出異常 算術(shù)異常等
10、類(lèi)之間存在以下幾種常見(jiàn)的關(guān)系:
正確答案:ABC
A “USES-A”關(guān)系
B “HAS-A”關(guān)系
C “IS-A”關(guān)系
D “INHERIT-A”關(guān)系
題解:
1、 USES-A:依賴(lài)關(guān)系,A類(lèi)會(huì)用到B類(lèi),這種關(guān)系具有偶然性,臨時(shí)性。但B類(lèi)的變化會(huì)影響A類(lèi)。這種在代碼中的體現(xiàn)為:A類(lèi)方法中的參數(shù)包含了B類(lèi)。 關(guān)聯(lián)關(guān)系:A類(lèi)會(huì)用到B類(lèi),這是一種強(qiáng)依賴(lài)關(guān)系,是長(zhǎng)期的并非偶然。在代碼中的表現(xiàn)為:A類(lèi)的成員變量中含有B類(lèi)。 HAS-A:聚合關(guān)系,擁有關(guān)系,是關(guān)聯(lián)關(guān)系的一種特例,是整體和部分的關(guān)系。比如鳥(niǎo)群和鳥(niǎo)的關(guān)系是聚合關(guān)系,鳥(niǎo)群中每個(gè)部分都是鳥(niǎo)。 IS-A:表示繼承。父類(lèi)與子類(lèi),這個(gè)就不解釋了。 要注意:還有一種關(guān)系:組合關(guān)系也是關(guān)聯(lián)關(guān)系的一種特例,它體現(xiàn)一種contains-a的關(guān)系,這種關(guān)系比聚合更強(qiáng),也稱(chēng)為強(qiáng)聚合。它同樣體現(xiàn)整體與部分的關(guān)系,但這種整體和部分是不可分割的。
2、 use-a 是依賴(lài)關(guān)系 has-a 一般是組合關(guān)系 is-a 一般是繼承關(guān)系
答案匯總:
1、正確答案:B
2、正確答案:B
3、正確答案:C
4、正確答案:C
5、正確答案:B
6、正確答案:B
7、正確答案:B
8、正確答案:D
9、正確答案:D
10、正確答案:ABC
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!
原文鏈接:https://blog.csdn.net/weixin_43883917/article/details/119909574