成年人在线观看视频免费,国产第2页,人人狠狠综合久久亚洲婷婷,精品伊人久久

java面試題目及答案

  1. 下面哪些是Thread類的方法()

  A start() B run() C exit() D getPriority()

  答案:ABD

  解析:看Java API docs吧:https://docs.oracle.com/javase/7/docs/api/,exit()是System類的方法,如System.exit(0)。

  2. 下面關(guān)于java.lang.Exception類的說(shuō)法正確的是()

  A 繼承自Throwable B Serialable CD 不記得,反正不正確

  答案:A

  解析:Java異常的基類為java.lang.Throwable,java.lang.Error和java.lang.Exception繼承 Throwable,RuntimeException和其它的Exception等繼承Exception,具體的RuntimeException繼承RuntimeException。

  擴(kuò)展:錯(cuò)誤和異常的區(qū)別(Error vs Exception)

  1) java.lang.Error: Throwable的子類,用于標(biāo)記嚴(yán)重錯(cuò)誤。合理的應(yīng)用程序不應(yīng)該去try/catch這種錯(cuò)誤。絕大多數(shù)的錯(cuò)誤都是非正常的,就根本不該出現(xiàn)的。

  java.lang.Exception: Throwable的子類,用于指示一種合理的程序想去catch的條件。即它僅僅是一種程序運(yùn)行條件,而非嚴(yán)重錯(cuò)誤,并且鼓勵(lì)用戶程序去catch它。

  2) Error和RuntimeException 及其子類都是未檢查的異常(unchecked exceptions),而所有其他的Exception類都是檢查了的異常(checked exceptions).

  checked exceptions: 通常是從一個(gè)可以恢復(fù)的程序中拋出來(lái)的,并且最好能夠從這種異常中使用程序恢復(fù)。比如FileNotFoundException, ParseException等。檢查了的異常發(fā)生在編譯階段,必須要使用try…catch(或者throws)否則編譯不通過(guò)。

  unchecked exceptions: 通常是如果一切正常的話本不該發(fā)生的異常,但是的確發(fā)生了。發(fā)生在運(yùn)行期,具有不確定性,主要是由于程序的邏輯問(wèn)題所引起的。比如 ArrayIndexOutOfBoundException, ClassCastException等。從語(yǔ)言本身的角度講,程序不該去catch這類異常,雖然能夠從諸如RuntimeException這樣的異常中catch并恢復(fù),但是并不鼓勵(lì)終端程序員這么做,因?yàn)橥耆珱](méi)要必要。因?yàn)檫@類錯(cuò)誤本身就是bug,應(yīng)該被修復(fù),出現(xiàn)此類錯(cuò)誤時(shí)程序就應(yīng)該立即停止執(zhí)行。 因此,面對(duì)Errors和unchecked exceptions應(yīng)該讓程序自動(dòng)終止執(zhí)行,程序員不該做諸如try/catch這樣的事情,而是應(yīng)該查明原因,修改代碼邏輯。

  RuntimeException:RuntimeException體系包括錯(cuò)誤的類型轉(zhuǎn)換、數(shù)組越界訪問(wèn)和試圖訪問(wèn)空指針等等。

  處理RuntimeException的原則是:如果出現(xiàn) RuntimeException,那么一定是程序員的錯(cuò)誤。例如,可以通過(guò)檢查數(shù)組下標(biāo)和數(shù)組邊界來(lái)避免數(shù)組越界訪問(wèn)異常。其他 (IOException等等)checked異常一般是外部錯(cuò)誤,例如試圖從文件尾后讀取數(shù)據(jù)等,這并不是程序本身的錯(cuò)誤,而是在應(yīng)用環(huán)境中出現(xiàn)的外部錯(cuò)誤。

  3. 下面程序的運(yùn)行結(jié)果是()

  String str1 = "hello";

  String str2 = "he" + new String("llo");

  System.err.println(str1 == str2);

  答案:false

  解析:因?yàn)閟tr2中的llo是新申請(qǐng)的內(nèi)存塊,而==判斷的是對(duì)象的地址而非值,所以不一樣。如果是String str2 = str1,那么就是true了。

  4. 下列說(shuō)法正確的有()

  A. class中的constructor不可省略

  B. constructor必須與class同名,但方法不能與class同名

  C. constructor在一個(gè)對(duì)象被new時(shí)執(zhí)行

  D.一個(gè)class只能定義一個(gè)constructor

  答案:C

  解析:這里可能會(huì)有誤區(qū),其實(shí)普通的類方法是可以和類名同名的,和構(gòu)造方法唯一的區(qū)分就是,構(gòu)造方法沒(méi)有返回值。

  5. 具體選項(xiàng)不記得,但用到的知識(shí)如下:

  String []a = new String[10];

  則:a[0]~a[9] = null

  a.length = 10

  如果是int []a = new int[10];

  則:a[0]~a[9] = 0

  a.length = 10

本文已影響6827
上一篇:中國(guó)農(nóng)業(yè)銀行招聘面試題目 下一篇:運(yùn)維工程師面試問(wèn)題

相關(guān)文章推薦

|||||