哦ㄑ客錯(cuò)題集(四)

1.在try的括號(hào)里面有return一個(gè)值电爹,那在哪里執(zhí)行finally里的代碼?
正確答案: B 你的答案: A (錯(cuò)誤)
不執(zhí)行finally代碼
return前執(zhí)行
return后執(zhí)行

每一本Java書(shū)都有講過(guò)哀卫【薹唬“假設(shè)利用 return 語(yǔ)句從 try 語(yǔ)句塊中退出。在方法返回前此改,finally子句的內(nèi)容將被執(zhí)行趾撵。如果 finally 子句中也有一個(gè) return 語(yǔ)句,這個(gè)返回值將會(huì)覆蓋原始的返回值共啃≌嫉鳎”

finally 語(yǔ)句塊是在 try 或者 catch 中的 return 語(yǔ)句之前執(zhí)行的。更加一般的說(shuō)法是移剪,finally 語(yǔ)句塊應(yīng)該是在控制轉(zhuǎn)移語(yǔ)句之前執(zhí)行究珊,控制轉(zhuǎn)移語(yǔ)句除了 return 外,還有 break 和 continue挂滓。另外苦银,throw 語(yǔ)句也屬于控制轉(zhuǎn)移語(yǔ)句。雖然 return赶站、throw、break 和 continue 都是控制轉(zhuǎn)移語(yǔ)句纺念,但是它們之間是有區(qū)別的贝椿。其中 return 和 throw 把程序控制權(quán)轉(zhuǎn)交給它們的調(diào)用者(invoker),而 break 和 continue 的控制權(quán)是在當(dāng)前方法內(nèi)轉(zhuǎn)移
https://www.ibm.com/developerworks/cn/java/j-lo-finally/

是關(guān)于 try return finally 的詳細(xì)解釋文檔,很有說(shuō)服力陷谱。

錯(cuò)題

清單 6.
public class Test { 
public static void main(String[] args) { 
       System.out.println("return value of getValue(): " + getValue()); 
    } 
 
public static int getValue() { 
       int i = 1; 
       try { 
                return i; 
       } finally { 
                i++; 
       } 
    } 
}
清單 6 的執(zhí)行結(jié)果:

1
return value of getValue(): 1

在 finally 語(yǔ)句塊(iinc 0, 1)執(zhí)行之前烙博,getValue()方法保存了其返回值(1)到本地表量表中 1 的位置,完成這個(gè)任務(wù)的指令是 istore_1烟逊;然后執(zhí)行 finally 語(yǔ)句塊(iinc 0, 1)渣窜,finally 語(yǔ)句塊把位于 0 這個(gè)位置的本地變量表中的值加 1,變成 2宪躯;待 finally 語(yǔ)句塊執(zhí)行完畢之后乔宿,把本地表量表中 1 的位置上值恢復(fù)到操作數(shù)棧(iload_1),最后執(zhí)行 ireturn 指令把當(dāng)前操作數(shù)棧中的值(1)返回給其調(diào)用者(main)访雪。這就是為什么清單 6 的執(zhí)行結(jié)果是 1详瑞,而不是 2 的原因。

清單 9.
public class Test { 
public static void main(String[] args) {  
System.out.println(test());  
    }  
 
public static String test() {  
try {  
System.out.println("try block");  
return test1();  
} finally {  
System.out.println("finally block");  
        }  
    }  
public static String test1() {  
System.out.println("return statement");  
return "after return";  
    }  
}
清單 9 的結(jié)果:
try block 
return statement 
finally block 
after return

因?yàn)閞eturn test1();這條語(yǔ)句等同于 :
String tmp = test1();
return tmp;

2.復(fù)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)和socket通信

Java Socket編程----通信是這樣煉成的

3.以下關(guān)于final關(guān)鍵字說(shuō)法錯(cuò)誤的是(A,C)(兩項(xiàng))

A) final是java中的修飾符臣缀,可以修飾類(lèi)坝橡、接口、抽象類(lèi)精置、方法和屬性
B) final修飾的類(lèi)肯定不能被繼承
C) final修飾的方法不能被重載
D) final修飾的變量不允許被再次賦值

final修飾的方法可以被重載 但不能被重寫(xiě)
java中使用final關(guān)鍵字修飾一個(gè)變量時(shí)计寇,是引用不能變,還是引用的對(duì)象不能變?
 是引用對(duì)象的地址值不能變番宁,引用變量所指向的對(duì)象的內(nèi)容是可以改變元莫。
 final變量永遠(yuǎn)指向這個(gè)對(duì)象,是一個(gè)常量指針贝淤,而不是指向常量的指針柒竞。

4.說(shuō)明輸出結(jié)果。

package test;
import java.util.Date; 
public class SuperTest extends Date{ 
    private static final long serialVersionUID = 1L; 
    private void test(){ 
       System.out.println(super.getClass().getName()); 
    } 
      
    public static void main(String[]args){ 
       new SuperTest().test(); 
    } 
}

正確答案: C 你的答案: B (錯(cuò)誤)
A.SuperTest
B.SuperTest.class
C.test.SuperTest
D.test.SuperTest.class

①.首先 super.getClass() 是父類(lèi)的getClass()方法播聪,其父類(lèi)是Date朽基,它的getClass()方法是繼承自O(shè)bject類(lèi)而且沒(méi)有重寫(xiě),
所以就是調(diào)用object的getClass()方法离陶。而看一下getclass的方法解釋如下圖

image

所以可以知道是返回當(dāng)前運(yùn)行時(shí)的類(lèi)稼虎。
②.在調(diào)用getName()方法而getName()是:包名+類(lèi)名**

5.變量不能被defalut修飾
6.以下可以正確獲取結(jié)果集的有
正確答案: A D 你的答案: A (錯(cuò)誤)
A.Statement sta=con.createStatement();
ResultSet rst=sta.executeQuery(“select * from book”);
B.Statement sta=con.createStatement(“select * from book”); ResultSet rst=sta.executeQuery();
C.PreparedStatement pst=con.prepareStatement();
ResultSet rst=pst.executeQuery(“select * from book”);
D.PreparedStatement pst=con.prepareStatement(“select * from book”);
ResultSet rst=pst.executeQuery();

1、 PreparedStatement繼承 Statement招刨, PreparedStatement 實(shí)例包含已編譯的 SQL 語(yǔ)句霎俩, 所以其執(zhí)行速度要快于 Statement 對(duì)象。
2沉眶、作為 Statement 的子類(lèi)打却,PreparedStatement 繼承了 Statement 的所有功能。三種方法
execute谎倔、 executeQuery 和 executeUpdate 已被更改以使之不再需要參數(shù)

  1. PreparedStatement盡最大可能提高性能. 最重要的一點(diǎn)是極大地提高了安全性.

7.Java中以static關(guān)鍵字修飾的方法稱為類(lèi)方法柳击,實(shí)例化一個(gè)類(lèi),引用的普通方法稱為實(shí)例方法片习。

8.System是java.lang中的類(lèi)捌肴,out為System中的一個(gè)靜態(tài)成員,out是java.io.PrintStream類(lèi)的對(duì)象藕咏,而println()是java.io.PrintStream類(lèi)的方法状知,所有可以調(diào)用類(lèi).靜態(tài)方法.println()方法。

9.public interface IService {String NAME="default";}
默認(rèn)類(lèi)型等價(jià)表示是哪一項(xiàng):
public static final String NAME="default";
接口中的變量默認(rèn)是public static final 的孽查,方法默認(rèn)是public abstract 的
所以你可以這樣寫(xiě):
public static final int i=10;或則int i=10饥悴;(可以省略掉一部分)
注意在聲明的時(shí)候要給變量賦予初值

10.What is displayed when the following is executed;

double d1=-0.5;
System.out.println("Ceil d1="+Math.ceil(d1));
System.out.println("floor d1="+Math.floor(d1));

正確答案: A 你的答案: B (錯(cuò)誤)
Ceil d1=-0.0
floor d1=-1.0

Ceil d1=0.0
floor d1=-1.0

ceil 和 floor 方法 上都有一句話:If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument,意思為:如果參數(shù)是 NaN卦碾、無(wú)窮铺坞、正 0、負(fù) 0洲胖,那么結(jié)果與參數(shù)相同济榨,
如果是 -0.0,那么其結(jié)果是 -0.0

11.以下代碼的輸出結(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 你的答案: A (錯(cuò)誤)
靜態(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)塊
并不是靜態(tài)塊最先初始化,而是靜態(tài)域.
而靜態(tài)域中包含靜態(tài)變量擒滑、靜態(tài)塊和靜態(tài)方法,其中需要初始化的是靜態(tài)變量和靜態(tài)塊.而他們兩個(gè)的初始化順序是靠他們倆的位置決定的!
So腐晾!初始化順序是 t1 t2 靜態(tài)塊

12.JSP對(duì)象 怎樣獲得
out->response.getWriter
request ->Service方法中的req參數(shù)
response ->Service方法中的resp參數(shù)
session ->request.getSession
application ->getServletContext
exception ->Throwable
page ->this
pageContext ->PageContext
Config ->getServletConfig

13.Collection和Collections
java.util.Collection 是一個(gè)集合接口。
它提供了對(duì)集合對(duì)象進(jìn)行基本操作的通用接口方法丐一。Collection接口在Java 類(lèi)庫(kù)中有很多具體的實(shí)現(xiàn)藻糖。Collection接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。
以下接口實(shí)現(xiàn)了Collection接口:
map库车,set巨柒,list,vector

java.util.Collections 是一個(gè)包裝類(lèi)柠衍。
它包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法洋满。此類(lèi)不能實(shí)例化,就像一個(gè)工具類(lèi)珍坊,服務(wù)于Java的Collection框架牺勾。

14.什么時(shí)候是編譯時(shí)出錯(cuò),什么時(shí)候運(yùn)行時(shí)出錯(cuò)

編譯時(shí)
編譯時(shí)顧名思義就是正在編譯的時(shí)候.那啥叫編譯呢?就是編譯器幫你把源代碼翻譯成機(jī)器能識(shí)別的代碼.(當(dāng)然只是一般意義上這么說(shuō),實(shí)際上可能只是翻譯成某個(gè)中間狀態(tài)的語(yǔ)言.比如Java只有JVM識(shí)別的字節(jié)碼,C#中只有CLR能識(shí)別的MSIL.另外還有啥鏈接器.匯編器.為了了便于理解我們可以統(tǒng)稱為編譯器)

那編譯時(shí)就是簡(jiǎn)單的作一些翻譯工作,比如檢查老兄你有沒(méi)有粗心寫(xiě)錯(cuò)啥關(guān)鍵字了啊.有啥詞法分析,語(yǔ)法分析之類(lèi)的過(guò)程.就像個(gè)老師檢查學(xué)生的作文中有沒(méi)有錯(cuò)別字和病句一樣.如果發(fā)現(xiàn)啥錯(cuò)誤編譯器就告訴你.如果你用微軟的VS的話,點(diǎn)下build.那就開(kāi)始編譯,如果下面有errors或者warning信息,那都是編譯器檢查出來(lái)的.所謂這時(shí)的錯(cuò)誤就叫編譯時(shí)錯(cuò)誤,這個(gè)過(guò)程中做的啥類(lèi)型檢查也就叫編譯時(shí)類(lèi)型檢查,或靜態(tài)類(lèi)型檢查(所謂靜態(tài)嘛就是沒(méi)把真把代碼放內(nèi)存中運(yùn)行起來(lái),而只是把代碼當(dāng)作文本來(lái)掃描下).所以有時(shí)一些人說(shuō)編譯時(shí)還分配內(nèi)存啥的肯定是錯(cuò)誤的說(shuō)法.

15.異常(編譯時(shí)異常和運(yùn)行時(shí)異常)
https://blog.csdn.net/youngstar70/article/details/62227032

16.重載的概念是:
方法名稱相同阵漏,參數(shù)個(gè)數(shù)驻民、次序、類(lèi)型不同
因此重載對(duì)返回值沒(méi)有要求履怯,可以相同回还,也可以不同
但是如果參數(shù)的個(gè)數(shù)、類(lèi)型叹洲、次序都相同懦趋,方法名也相同,僅返回值不同疹味,則無(wú)法構(gòu)成重載

17.聲明為static和transient類(lèi)型的成員數(shù)據(jù)不能被串行化。因?yàn)閟tatic代表類(lèi)的狀態(tài)帜篇, transient代表對(duì)象的臨時(shí)數(shù)據(jù)糙捺。


6316247_1470493382915_C801D3B0A0AF97DF607C783246F436DF.png

18.類(lèi)變量在不設(shè)置初始值時(shí),會(huì)進(jìn)行默認(rèn)值賦值笙隙,而局部方法中聲明的變量則必須進(jìn)行初始化洪灯,他不會(huì)進(jìn)行默認(rèn)值賦值。

19.靜態(tài)變量只能在類(lèi)主體中定義竟痰,不能在方法中定義

public class Test {
    public int aMethod(){
        static int i = 0;
        i++;
        return i;
    }
public static void main(String args[]){
    Test test = new Test();
    test.aMethod();
    int j = test.aMethod();
    System.out.println(j);
    }
}

即編譯失敗

https://www.cnblogs.com/dianqijiaodengdai/p/6144698.html

20.靜態(tài)方法中new內(nèi)部類(lèi)的實(shí)例對(duì)象
https://www.cnblogs.com/printN/p/6249177.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末签钩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子坏快,更是在濱河造成了極大的恐慌铅檩,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莽鸿,死亡現(xiàn)場(chǎng)離奇詭異昧旨,居然都是意外死亡拾给,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)兔沃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蒋得,“玉大人,你說(shuō)我怎么就攤上這事乒疏《钛茫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵怕吴,是天一觀的道長(zhǎng)窍侧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)械哟,這世上最難降的妖魔是什么疏之? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮暇咆,結(jié)果婚禮上锋爪,老公的妹妹穿的比我還像新娘。我一直安慰自己爸业,他們只是感情好其骄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著扯旷,像睡著了一般拯爽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钧忽,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天毯炮,我揣著相機(jī)與錄音,去河邊找鬼耸黑。 笑死桃煎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的大刊。 我是一名探鬼主播为迈,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缺菌!你這毒婦竟也來(lái)了葫辐?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤伴郁,失蹤者是張志新(化名)和其女友劉穎耿战,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蛾绎,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昆箕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年鸦列,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹏倘。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡薯嗤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纤泵,到底是詐尸還是另有隱情骆姐,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布捏题,位于F島的核電站玻褪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏公荧。R本人自食惡果不足惜带射,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望循狰。 院中可真熱鬧窟社,春花似錦、人聲如沸绪钥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)程腹。三九已至匣吊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寸潦,已是汗流浹背色鸳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留见转,地道東北人缕碎。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像池户,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凡怎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1 以下屬于面向?qū)ο蟮奶卣鞯氖牵ǎ?答:面向?qū)ο蟮奶卣髦饕牵悍庋b校焦、繼承、多態(tài)统倒。而多態(tài)的實(shí)現(xiàn)主要是函數(shù)方法的重載和...
    apollooo閱讀 6,371評(píng)論 1 2
  • 近期寨典,某大型企業(yè)的高級(jí)java開(kāi)發(fā)工程師的面試題,現(xiàn)給出試題和答案房匆,供大家參考耸成,如有不對(duì)之處报亩,請(qǐng)大家指教。 選擇題...
    和奇谷樸閱讀 9,552評(píng)論 3 20
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法井氢,類(lèi)相關(guān)的語(yǔ)法弦追,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法花竞,異常的語(yǔ)法劲件,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,643評(píng)論 18 399
  • 本節(jié)介紹Statement接口及其子類(lèi)PreparedStatement和CallableStatement。 它...
    zlb閱讀 1,161評(píng)論 0 0
  • 關(guān)鍵點(diǎn) 每一個(gè)函數(shù)在定義的時(shí)候约急,都會(huì)有跟它關(guān)聯(lián)的一個(gè)對(duì)象被創(chuàng)建出來(lái)每一個(gè)由構(gòu)造函數(shù)創(chuàng)建出來(lái)的對(duì)象零远,都會(huì)默認(rèn)的和構(gòu)造...
    嗨黃先生閱讀 205評(píng)論 0 1