當前位置:編程學習大全網 - 源碼下載 - Java常見的面試問題(帶答案),自己答出來多少

Java常見的面試問題(帶答案),自己答出來多少

1、在java中如果聲明壹個類為final,表示什麽意思?

答:final是最終的意思,final可用於定義變量、方法和類但含義不同,聲明為final的類不能被繼承。

父類的構造方法是否可以被子類覆蓋(重寫)?

答:父類的構造方法不可以被子類覆蓋,因為父類和子類的類名是不可能壹樣的。

2、請講述String 和StringBuffer的區別。

答:String 類所定義的對象是用於存放”長度固定”的字符串。

StringBuffer類所定義的對象是用於存放”長度可變動”的字符串。

3、如果有兩個類A、B(註意不是接口),妳想同時使用這兩個類的功能,那麽妳會如何編寫這個C類呢?

答:因為類A、B不是接口,所以是不可以直接繼承的,但可以將A、B類定義成父子類,那麽C類就能實現A、B類的功能了。假如A為B的父類,B為C的父類,此時C就能實現A、B的功能。

4、談談妳對抽象類和接口的理解。

答:定義抽象類的目的是提供可由其子類***享的壹般形式、子類可以根據自身需要擴展抽象類、抽象類不能實例化、抽象方法沒有函數體、抽象方法必須在子類中給出具體實現。他使用extends來繼承。

接口:壹個接口允許壹個類從幾個接口繼承而來,Java 程序壹次只能繼承壹個類但可以實現幾個接口,接口不能有任何具體的方法,接口也可用來定義可由類使用的壹組常量。其實現方式是interface來實現。

5、Java中什麽是競態條件?

答:競態條件會導致程序在並發情況下出現壹些bugs。多線程對壹些資源的競爭的時候就會產生競態條件,如果首先要執行的程序競爭失敗排到後面執行了,那麽整個程序就會出現壹些不確定的bugs。這種bugs很難發現而且會重復出現,因為線程間的隨機競爭。

6、Java中如何停止壹個線程?

答:Java提供了很豐富的API但沒有為停止線程提供API。JDK 1.0本來有壹些像stop(), suspend() 和 resume()的控制方法但是由於潛在的死鎖威脅因此在後續的JDK版本中他們被棄用了,之後Java API的設計者就沒有提供壹個兼容且線程安全的方法來停止壹個線程。當run() 或者 call() 方法執行完的時候線程會自動結束,如果要手動結束壹個線程,妳可以用volatile 布爾變量來退出run()方法的循環或者是取消任務來中斷線程。點擊這裏查看示例代碼。

7、 壹個線程運行時發生異常會怎樣?

答: 簡單的說,如果異常沒有被捕獲該線程將會停止執行。Thread.UncaughtExceptionHandler是用於處理未捕獲異常造成線程突然中斷情況的壹個內嵌接口。當壹個未捕獲異常將造成線程中斷的時候JVM會使用Thread.getUncaughtExceptionHandler()來查詢線程的UncaughtExceptionHandler並將線程和異常作為參數傳遞給handler的uncaughtException()方法進行處理。

  • 上一篇:如何使用nodepad url解碼
  • 下一篇:JAVA語言在未來的幾年會被淘汰嗎?
  • copyright 2024編程學習大全網