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