<menu id="k0e80"><tt id="k0e80"></tt></menu>
  • 專注Java教育12年 全國咨詢/投訴熱線:400-8080-105

    首頁 學習攻略 Java學習 十道Java熱門面試題

    十道Java熱門面試題

    更新時間:2019-11-26 15:48 來源:動力節點 瀏覽1264次



    微信截圖_20190703153336.jpg

      1、什么是GC?為什么要有GC?


      GC(GarbageCollection)是垃圾收集的意思,負責清除對象并釋放內存。Java提供的GC功能可以自動檢測對象是否超過作用域從而達到自動回收內存的目的,從而防止內存泄漏。


      2、final,finally和finalize的區別?


      final用于聲明屬性,方法和類,表示屬性不可變,方法不可被重寫,類不可被繼承。


      finally是異常處理語句結構的一部分,表示總是執行。


      finalize是object類的一個方法,在垃圾收集器執行的時候會調用這個對象回收的方法,工垃圾收集時其他資源的回收,比如關閉文件。


      3、什么是單例模式?實現步驟?


      單例模式保證了對象唯一。分為懶漢式(在類加載時不初始化)和餓漢式(在類加載時就完成了初始化,所以類加載比較慢,但獲取對象的速度快)。


      實現步驟:私有化構造函數、創建一個靜態的私有對象、提供公共的訪問方法。


      4、ArrayList和LinkedList有何區別?


      ArrayList是基于動態數組的數據結構,LinkedList是基于鏈表的數據結構;對于隨機訪問get和set,ArrayList較優,因為LinkedList要移動指針;對于新增和刪除操作add和remove,LinedList較優,因為ArrayList要移動數據。


      5、HashMap和Hashtable的區別?


      HashMap允許空鍵值,Hashtable不允許;


      HashMap繼承自AbstractMap,Hashtable繼承自Dictionary類,兩者都實現了Map接口;HashMap的方法不是同步的,Hashtable的方法是同步的。


      6、Iterater和ListIterator之間有什么區別?


      Iterator用來遍歷Set和List集合,而ListIterator只能遍歷List;Iterator只可以向前遍歷,而LIstIterator可以雙向遍歷;ListIterator從Iterator接口繼承,然后添加了一些額外的功能,比如添加一個元素、替換一個元素、獲取前面或后面元素的索引位置。


      7、創建線程的方式?


      繼承Thread類


      實現Runnable接口


      使用Executor框架


      8、什么是死鎖?


      兩個線程或兩個以上線程都在等待對方執行完畢才能繼續往下執行的時候就發生了死鎖。結果就是這些線程都陷入了無限的等待中。


      9、wait()與sleep()的區別?


      sleep()來自Thread類,wait()來自Object類;


      調用sleep()方法,線程不會釋放對象鎖。而調用wait方法線程會釋放對象鎖;


      sleep()睡眠后不出讓系統資源,wait讓其他線程可以占用CPU;


      sleep(milliseconds)需要指定一個睡眠時間,時間一到會自動喚醒。而wait()需要配合notify()


      或者notifyAll()使用。


      10、什么是ThreadLocal?ThreadLocal和Synchonized的區別?


      線程局部變量。是局限于線程內部的變量,屬于線程自身所有,不在多個線程間共享。Java提供ThreadLocal類來支持線程局部變量,是一種實現線程安全的方式。


      synchronized是利用鎖的機制,使變量或代碼塊在某一時該只能被一個線程訪問。而ThreadLocal為每一個線程都提供了變量的副本,使得每個線程在某一時間訪問到的并不是同一個對象,這樣就隔離了多個線程對數據的數據共享。


           以上就是動力節點Java培訓機構小編介紹的“十道Java熱門面試題”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


    相關推薦


    最新最全java面試題及答案(初級到高級)


    史上最全的中高級JAVA工程師面試題及答案匯總


    Java高級開發工程師面試題


    2019史上最全java面試題題庫大全800題


    哪有資深java工程師面試題


    提交申請后,顧問老師會電話與您溝通安排學習

    免費課程推薦 >>
    技術文檔推薦 >>

    返回頂部
    XXX
    <menu id="k0e80"><tt id="k0e80"></tt></menu>