1. 程式人生 > >Java常考面試題

Java常考面試題

class 出了 維護 們的 封裝 cep jdb destroy 輸出

  1. Java集合類框架的基本接口有哪些?
    參考答案
    集合類接口指定了一組叫做元素的對象。集合類接口的每一種具體的實現類都可以選擇以它自己的方式對元素進行保存和排序。有的集合類允許重復的鍵,有些不允許。
    Java集合類提供了一套設計良好的支持對一組對象進行操作的接口和類。Java集合類裏面最基本的接口有:
    Collection:代表一組對象,每一個對象都是它的子元素。
    Set:不包含重復元素的Collection。
    List:有順序的collection,並且可以包含重復元素。
    Map:可以把鍵(key)映射到值(value)的對象,鍵不能重復。

  2. Iterator和ListIterator的區別是什麽?
    參考答案
    下面列出了他們的區別:
    Iterator可用來遍歷Set和List集合,但是ListIterator只能用來遍歷List。
    Iterator對集合只能是前向遍歷,ListIterator既可以前向也可以後向。
    ListIterator實現了Iterator接口,並包含其他的功能,比如:增加元素,替換元素,獲取前一個和後一個元素的索引,等等。

  3. 快速失敗(fail-fast)和安全失敗(fail-safe)的區別是什麽?
    參考答案
    Iterator的安全失敗是基於對底層集合做拷貝,因此,它不受源集合上修改的影響。java.util包下面的所有的集合類都是快速失敗的,而java.util.concurrent包下面的所有的類都是安全失敗的。快速失敗的叠代器會拋出ConcurrentModificationException異常,而安全失敗的叠代器永遠不會拋出這樣的異常。

  4. 如果對象的引用被置為null,垃圾收集器是否會立即釋放對象占用的內存?
    參考答案
    不會,在下一個垃圾回收周期中,這個對象將是可被回收的。

  5. JVM的永久代中會發生垃圾回收麽?
    參考答案
    垃圾回收不會發生在永久代,如果永久代滿了或者是超過了臨界值,會觸發完全垃圾回收(Full GC)。如果你仔細查看垃圾收集器的輸出信息,就會發現永久代也是被回收的。這就是為什麽正確的永久代大小對避免Full GC是非常重要的原因。請參考下Java8:從永久代到元數據區
    (註:Java8中已經移除了永久代,新加了一個叫做元數據區的native內存區)

  6. 什麽是JDBC?
    參考答案
    JDBC是允許用戶在不同數據庫之間做選擇的一個抽象層。JDBC允許開發者用JAVA寫數據庫應用程序,而不需要關心底層特定數據庫的細節。

  7. 解釋下Servlet的生命周期。
    參考答案
    對每一個客戶端的請求,Servlet引擎載入Servlet,調用它的init()方法,完成Servlet的初始化。然後,Servlet對象通過為每一個請求單獨調用service()方法來處理所有隨後來自客戶端的請求,最後,調用Servlet(譯者註:這裏應該是Servlet而不是server)的destroy()方法把Servlet刪除掉。

  8. 面向對象軟件開發的優點有哪些?
    參考答案
    代碼開發模塊化,更易維護和修改。
    代碼復用。
    增強代碼的可靠性和靈活性。
    增加代碼的可理解性。
    面向對象編程有很多重要的特性,比如:封裝,繼承,多態和抽象。下面的章節我們會逐個分析這些特性。

Java常考面試題