Java面向?qū)ο筮x擇題總結(jié)歸納
把最近聽的寫的一些題目做下筆記!
1.下列程序的執(zhí)行,說法錯(cuò)誤的是 ( ABC )
public class MultiCatch {
public static void main(String args[]){
try{
int a=args.length;
int b=42/a; //10行
int c[]={1};
c[42]=99;
System.out.println("b="+b);
}catch(ArithmeticException e){
System.out.println("除0異常:"+e); // 15行
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("數(shù)組超越邊界異常:"+e); // 19行
}
}
}
A、程序?qū)⑤敵龅?5行的異常信息
B、程序第10行出錯(cuò)
C、程序?qū)⑤敵觥眀=42”
D、程序?qū)⑤敵龅?5或者19行的異常信息
筆記:首先分析A選項(xiàng),它說第15行將會(huì)輸出異常信息,那我們先看下整個(gè)程序,int a =args.length 這一句是獲取args數(shù)組的長(zhǎng)度,這個(gè)地方也許很多人都不清楚,都認(rèn)為這里就是空的,也就是長(zhǎng)度為0,那么肯定會(huì)拋出異常的,但是其實(shí)這個(gè)main中的這個(gè)數(shù)組是可以賦值的(這里大家可以百度一下),這個(gè)賦值是很特殊的,所以A不對(duì),不一定會(huì)拋出異常。
同樣B也是一樣的道理。
我們看C、程序?qū)⑤敵觥眀=42”。很顯然如果args數(shù)組真為0,那么他會(huì)跳過System.out.println(“b=”+b);直接進(jìn)入catch語句拋出異常,所以不一定會(huì)輸出42。
看D、程序?qū)⑤敵龅?5或者19行的異常信息,很顯然數(shù)組越界是百分之百會(huì)報(bào)錯(cuò)的,但是不一定會(huì)有除0異常,所以D對(duì)。
2. 此方法返回值是多少(B )
public static int divide(){
int i = 3;
try {
int a = 10/0;
return i;
} catch (Exception e) {
i = 4;
return i;
}finally{
i = 5;
}
}
A.3
B.4
C.5
D.報(bào)異常錯(cuò)誤
分析:這個(gè)題確實(shí)有點(diǎn)坑,但是return掌握完全 就沒問題了,相信大部分人選C,但實(shí)際答案確實(shí)B。我們先一步一步分析,首先try中的肯定會(huì)拋出異常,于是到了int a =10\0 的時(shí)候就直接跳到了catch語句中,此時(shí)i被賦值為4,并且此時(shí)return 返回 i值,我們都知道finally的語句中是最后一定會(huì)執(zhí)行的,但是我們?cè)赾atch中把 i 給返回了,其他的任何賦值都沒用?。?!
所以選B。
3。對(duì)于catch子句的排列,下列哪種是正確的( B )
A、父類在先,子類在后
B、子類在先,父類在后
C、有繼承關(guān)系的異常不能在同一個(gè)try程序段內(nèi)
D、先有子類,其他如何排列都無關(guān)
分析:我舉兩個(gè)
像底下這種,是可以的
public class MultiCatch {
public static void main(String args[]){
try{
。。。。此處省略
}catch(ArithmeticException e){ //子類異常
System.out.println("除0異常:"+e);
}catch(Exception e) {
System.out.println("異常:"+e); //父類異常
}
}
}
像底下這種就不行,回報(bào)錯(cuò),因?yàn)镋xception是很大的一個(gè)類,基本所有異常都繼承于它,有了它就可以處理所有的異常,所以導(dǎo)致后面寫的就沒有意義,所以是錯(cuò)的
public class MultiCatch {
public static void main(String args[]){
try{
。。。。此處省略
}catch(Exception e){ //父類異常
System.out.println("異常:"+e);
}catch(ArithmeticException e) {
System.out.println("除0異常:"+e); //子類異常
}
}
}
好吧,今天就寫這么多,以后會(huì)繼續(xù)給大家分享我做的一些題目
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- java實(shí)現(xiàn)紙牌游戲之小貓釣魚算法
- Java算法實(shí)現(xiàn)楊輝三角的講解
- Java算法之冒泡排序?qū)嵗a
- Java基礎(chǔ)高級(jí)綜合練習(xí)題撲克牌的創(chuàng)建
- Java中字符串常見題之String相關(guān)講解
- Java內(nèi)存泄漏問題處理方法經(jīng)驗(yàn)總結(jié)
- Java數(shù)組的定義、初始化、及二維數(shù)組用法分析
- Java異常處理與throws關(guān)鍵字用法分析
- Java繼承的實(shí)現(xiàn)與繼承限制分析
- Java接口的簡(jiǎn)單定義與實(shí)現(xiàn)方法示例
相關(guān)文章
什么是springMVC?視圖和視圖解析器實(shí)例代碼
在 springMVC 中的目標(biāo)方法最終返回都是一個(gè)視圖,返回的視圖都會(huì)由一個(gè)視圖解析器來處理,這篇文章主要介紹了什么是springMVC?視圖和視圖解析器,需要的朋友可以參考下2023-09-09
spring boot整合redis實(shí)現(xiàn)RedisTemplate三分鐘快速入門
這篇文章主要介紹了spring boot整合redis實(shí)現(xiàn)RedisTemplate三分鐘快速入門,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
SpringBoot 自定義注解異步記錄復(fù)雜日志詳解
這篇文章主要為大家介紹了SpringBoot 自定義注解異步記錄復(fù)雜日志詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
淺析Java Mail無法解析帶分號(hào)的收件人列表的問題
JAVA MAIL嚴(yán)格按照RFC 822規(guī)范進(jìn)行操作,沒有對(duì)分號(hào)做處理。大多數(shù)郵件服務(wù)器都是嚴(yán)格遵循RFC 822規(guī)范的2013-08-08

