Java線程基礎面試大全

  • 有多少種實現線程的方法?典型錯誤答案和正確答案
  • 實現 Runnable接口和繼承 Thread類哪種方式更好?
  • 個線程兩次調用 start()方法會出現什麼情況?爲什麼?
  • 既然 start()方法會調用run()方法,爲什麼我們選擇調用 start()方法,而不是直接調用run()方法呢?
  • 如何正確停止一個線程?
  • 如何處理不可中斷的阻塞(例如搶鎖時 ReentrantLock lock() 或者 Socket I/O 時無法響應中斷,那應該怎麼讓該線程停止呢?)
  • 線程有哪幾種狀態?生命週期是什麼?
  • 如何用wait()實現兩個線程交替打印0~100的奇偶數?
  • 爲什麼要使用生產者和消費者模式?
  • 什麼是生產者消費者模式?
  • 如何用wait實現生產者模式?
  • 爲什麼wait必須在同步代碼塊中使用?
  • 爲什麼線程通信的方法wait(),notify()和notifyAll()被定義在Object類裏?而sleep定義在 Thread類裏?
  • wait方法是屬於Object對象的,那調用 Thread.wait會怎麼樣?
  • 如何選擇用notify還是nofityAll?
  • notify之後所有的線程都會再次搶奪鎖,如果某線程搶奪失敗怎麼辦?
  • 用suspend()和resume()來阻塞線程可以嗎?爲什麼?
  • wait/notify、sleep的異同?(方法屬於哪個對象?線程狀態怎麼切換?)
  • 在join期間,線程處於哪種線程狀態?
  • yield和sleep的區別?
  • 守護線程和普通線程的區別?
  • 我們是否需要給線程設置爲守護線程?
  • 爲什麼程序設計不應依賴於線程優先級?
  • 講講Java異常體系?
  • 實際工作中,如何全局處理異常?
  • 爲什麼異常需要全局處理?不處理行不行?
  • run方法是否可以拋出異常?如果拋出異常,線程的狀態會怎麼樣?
  • 共有哪幾類線程安全問題?
  • 哪些場景需要額外注意線程安全問題?
  • 爲什麼多線程會帶來性能問題?
  • 何時會導致密集的上下文切換?
  • 什麼是多線程的上下文切換?
  • Java代碼如何一步步轉化,最終被CPU執行?
  • 單例模式的作用和適用場景
  • 重排序的實例:單例模式多種寫法、單例和高併發的關係?
  • 單例各種寫法的適用場合?
  • 餓漢式的缺點?
  • 懶漢式的缺點?
  • 爲什麼要用double-check?不用就不安全嗎?
  • 爲什麼雙重檢查模式要用 volatile?
  • 應該如何選擇,用哪種單例的實現方案最好?爲什麼?
  • 講一講什麼是Java內存模型?
  • 什麼是 happens-before?
  • Happens-Before規則有哪些?
  • 講講volatile關鍵字?
  • volatile的適用場合?
  • volatile的作用?(兩點)
  • volatile和synchronized的異同
  • 什麼是以及爲什麼會有內存可見性問題?
  • 你知道主內存和本地內存嗎?什麼是主內存和本地內存?
  • 主內存和本地內存的關係?
  • 什麼是原子操作?
  • Java中的原子操作有哪些?
  • long和double的原子性你瞭解嗎?
  • 生成對象的過程是不是原子操作?
  • 寫一個必然死鎖的例子?
  • 生產中什麼場景下會發生死鎖?
  • 發生死鎖必須滿足哪些條件?
  • 如何用工具定位死鎖?
  • 有哪些解決死鎖問題的策略?
  • 避免策略和檢測與恢復策略的主要思路是什麼?
  • 講一講經典的哲學家就餐問題?怎麼解決?
  • 實際開發中如何避免死鎖?
  • 什麼是活躍性問題?活鎖、飢餓和死鎖有什麼區別?
  • 以上問題在以下文章均有詳細解答:

    實現多線程的方法是1種還是2種還是4種?
    怎樣纔是正確的線程啓動方式?
    如何正確停止線程之interrupt的使用
    如何正確停止線程之錯誤的停止方法
    線程的6個狀態(生命週期)
    Thread和Object類中的重要方法詳解
    wait/notify實現生產者消費者模式
    Thread和Object類中的重要方法之面試問題總結
    實現兩個線程交替打印0~100的奇偶數
    Thread線程的各個屬性
    線程的未捕獲異常如何處理?
    雙刃劍:多線程會導致的問題
    單例模式的9種寫法
    Java內存模型
    死鎖
    死鎖——銀行轉賬問題
    死鎖——哲學家就餐問題
    活鎖——牛郎織女的幸福生活
    Java線程基礎面試大全

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章