併發面試專題

(面試題+答案領取方式見主頁)java
- 如今有 T一、T二、T3 三個線程,你怎樣保證 T2 在 T1 執行完後執行,T3 在 T2 執行完後執行?
- 在 Java 中 Lock 接口比 synchronized 塊的優點是什麼?你須要實現一個高效的緩存,它容許多個用戶讀,但只容許一個用戶寫,以此來保持它的完整性,你會怎樣去實現它?
- 在 java 中 wait 和 sleep 方法的不一樣?
- 用 Java 實現阻塞隊列。
- 用 Java 寫代碼來解決生產者——消費者問題。
- 用 Java 編程一個會致使死鎖的程序,你將怎麼解決?
- 什麼是原子操做,Java 中的原子操做是什麼?
- Java 中的 volatile 關鍵是什麼做用?怎樣使用它?在 Java 中它跟 synchronized 方法有什麼不一樣?
- 什麼是競爭條件?你怎樣發現和解決競爭?
- 你將如何使用 threaddump?你將如何分析 Thread dump?
- 爲何咱們調用 start()方法時會執行 run()方法,爲何咱們不能直接調用 run()方法?
- Java 中你怎樣喚醒一個阻塞的線程?
- 在 Java 中 CycliBarriar 和 CountdownLatch 有什麼區別?
- 什麼是不可變對象,它對寫併發應用有什麼幫助?
- 你在多線程環境中遇到的常見的問題是什麼?你是怎麼解決它的?
Netty面試專題
面試
- BIO、NIO 和 AIO 的區別?
- NIO 的組成?
- .Netty 的特色?
- Netty 的線程模型?
- TCP 粘包/拆包的緣由及解決方法?
- 瞭解哪幾種序列化協議?
- 如何選擇序列化協議?
- Netty 的零拷貝實現?
- Netty 的高性能表如今哪些方面?
- NIOEventLoopGroup 源碼?
JVM面試專題
算法
- 內存模型以及分區,須要詳細到每一個區放什麼?
- 堆裏面的分區:Eden,survival (from+ to),老年代,各自的特色。
- 對象建立方法,對象的內存分配,對象的訪問定位。
- GC 的兩種斷定方法
- SafePoint 是什麼
- GC 的三種收集方法:標記清除、標記整理、複製算法的原理與特色,分別用在什麼地方,若是讓你優化收集方法,有什麼思路?
- GC 收集器有哪些?CMS 收集器與 G1 收集器的特色。
- Minor GC 與 Full GC 分別在何時發生?
- 幾種經常使用的內存調試工具
- 類加載的幾個過程
- JVM 內存分哪幾個區,每一個區的做用是什麼?
- 如和判斷一個對象是否存活?(或者 GC 對象的斷定方法)
- 簡述 java 垃圾回收機制?
- java 中垃圾收集的方法有哪些?
- java 內存模型
- java 類加載過程?
- 簡述 java 類加載機制?
- 類加載器雙親委派模型機制?
- 什麼是類加載器,類加載器有哪些?
20.簡述 java 內存分配與回收策率以及 Minor GC 和Major GC編程
Linux面試專題
緩存
- Linux 中主要有哪幾種內核鎖?
- Linux 中的用戶模式和內核模式是什麼含意?
- 怎樣申請大塊內核內存?
- 用戶進程間通訊主要哪幾種方式?
- 經過夥伴系統申請內核內存的函數有哪些?
- Linux 虛擬文件系統的關鍵數據結構有哪些?(至少寫出四個)
- 對文件或設備的操做函數保存在那個數據結構中?
- Linux 中的文件包括哪些?
- 建立進程的系統調用有那些?
- 調用 schedule()進行進程切換的方式有幾種?
- Linux 調度程序是根據進程的動態優先級仍是靜態優先級來調度進程的?
- 進程調度的核心數據結構是哪一個?
- 如何加載、卸載一個模塊?
- 模塊和應用程序分別運行在什麼空間?
- Linux 中的浮點運算由應用程序實現仍是內核實現?
- 模塊程序可否使用可連接的庫函數?
- TLB 中緩存的是什麼內容?
- Linux 中有哪幾種設備?
- 字符設備驅動程序的關鍵數據結構是哪一個?
- 設備驅動程序包括哪些功能函數?
- 如何惟一標識一個設備?
- Linux 經過什麼方式實現系統調用?
- Linux 軟中斷和工做隊列的做用是什麼?