Java 核心內容相關面試題【1】

一、什麼是 transient 變量?

transient 變量是指不會被序列化的變量。數組

二、什麼是同步(synchronization)?

在多線程環境中,同步是指控制多個線程訪問共享資源的方式。沒有同步的話,可能出現一個線程正在讀取或使用共享資源,同時另外一個線程卻在修改它的狀況,這會形成嚴重的錯誤。多線程

三、在 JDK 1.2 中,stop()suspend() 和 resume() 這三個方法有什麼變化?

它們都被標註爲 "deprecated",也就是應該避免使用。this

四、null 是一個關鍵字嗎?

不是。spa

五、線程中止運行後是什麼狀態?

線程中止運行後,就變成 DEAD 狀態。線程

六、什麼是集合 API(Collection API)?

集合 API 是指一組用於幫助處理對象集合的類和接口。code

七、List 接口是作什麼的?

List 接口是用來處理有序且容許重複的對象集合的接口。對象

八、Vector 類是作什麼的?(譯註:如今沒人用這個類了)

Vector 是一個可增加的對象數組。繼承

九、抽象類能夠實例化麼?

抽象類不能直接實例化,而只能經過建立其子類對象,來間接實例化。接口

10. Java 程序中用到的第一個關鍵字是什麼?

package資源

11. 何時應該將類定義爲 final

  1. 不但願有子類的時候;

  2. 不但願功能被擴展的時候。

12. 可否將抽象方法聲明爲靜態的?

不容許,這樣作會致使編譯錯誤:illegal combination of modifiers abstract and static

13. 可否將接口聲明爲抽象的?

能夠。聲明接口的時候加不加上 abstract 沒有區別。

14. 可否聲明一個內容爲空的接口?

能夠。

15. 可否將接口聲明爲 final

不容許,這樣作會致使編譯錯誤。由於接口必需要有子類。

16. 如何處理 ClassCastException?

在強制類型轉換以前用 instanceof 判斷是否能夠轉換。

17. "xyz"是基本型別(Primitive)類型的值嗎?

不是,"xyz"是一個字符串,不是基本型別類型的值。

18. 一個對象何時能夠被回收(garbage collection)?

當程序不可訪問(unreachable)該對象的時候,該對象能夠被回收。

19. 全部線程都要實現的一個方法是什麼?

run() 方法,不論該線程是繼承自 Thread 類或是實現了 Runnable 接口。

20. 當異常沒有被捕獲時,會發生什麼?

當前線程所在的線程組會執行一個叫 uncaughtException() 的方法,最後程序會異常退出。

21. 構造方法中如何使用 this() 和 super()

前者用來調用當前類的其餘構造方法;後者用來調用父類的構造方法。

22. 什麼狀況下垃圾收集器會執行對象的 finalize() 方法?

當垃圾收集器檢測到該對象不可訪問(unreachable)時,會執行該對象的 finalize() 方法。

23. 方法重載(overloading)有什麼要求?

方法的名稱必須同樣;方法的參數聲明必須不同。

24. 編譯器什麼狀況下會提供缺省構造方法(default constructor)?

當一個類沒有其餘構造方法的時候,編譯器會爲其提供缺省的構造方法。

25. 非靜態內部類可使用哪些修飾符(modifier)?

非靜態內部類可使用 final 或 abstract 修飾符。

相關文章
相關標籤/搜索