原创 1-操作系統與計算機網絡

本課時主要介紹面試中經常考察的計算機基礎知識以及 Java 語言特性。其中,計算機的基礎知識是工程師基本能力的體現,也是面試前必須要牢牢掌握的部分。 本課時結構如下: 面試中經常考察的知識點彙總,方便系統化複習; 對 TCP 協

原创 2-Java語言特性與設計模式

設計模式知識點 前面說了操作系統和網絡知識,接下來是設計模式的考察點,一般有兩個: 常用設計模式的實現; 設計模式的使用場景。 設計模式分爲 3 大類型共 23 種: 創建型:工廠方法模式、抽象工廠模式、單例模式、建造者模式

原创 19-Redis 的過期策略和內存淘汰機制有什麼區別?

Redis 和 MySQL 是面試繞不過的兩座大山,他們一個是關係型數據庫的代表(MySQL),一個是鍵值數據庫以及緩存中間件的一哥。尤其 Redis 幾乎是所有互聯網公司都在用的技術,比如國內的 BATJ、新浪、360、小米等公

原创 23-說一下 JVM 的內存佈局和運行原理?

JVM(Java Virtual Machine,Java 虛擬機)顧名思義就是用來執行 Java 程序的“虛擬主機”,實際的工作是將編譯的 class 代碼(字節碼)翻譯成底層操作系統可以運行的機器碼並且進行調用執行,這也是 J

原创 22-Redis 是如何實現高可用的?

高可用是通過設計,減少系統不能提供服務的時間,是分佈式系統的基礎也是保障系統可靠性的重要手段。而 Redis 作爲一款普及率最高的內存型中間件,它的高可用技術也非常的成熟。 我們本課時的面試題是,Redis 是如何保證系統高可用的

原创 16-MySQL 的運行機制是什麼?它有哪些引擎?

數據庫是 Java 程序員面試必問的知識點之一,它和 Java 的核心面試點共同組成了一個完整的技術面試。而數據庫一般泛指的就是 MySQL,因爲 MySQL 幾乎佔據了數據庫的半壁江山,即使有些公司沒有使用 MySQL 數據庫,

原创 26-生產環境如何排除和優化 JVM?

通過前面幾個課時的學習,相信你對 JVM 的理論及實踐等相關知識有了一個大體的印象。而本課時將重點講解 JVM 的排查與優化,這樣就會對 JVM 的知識點有一個完整的認識,從而可以更好地應用於實際工作或者面試了。 我們本課時的面試

原创 17-MySQL 的優化方案有哪些?

性能優化(Optimize)指的是在保證系統正確性的前提下,能夠更快速響應請求的一種手段。而且有些性能問題,比如慢查詢等,如果積累到一定的程度或者是遇到急速上升的併發請求之後,會導致嚴重的後果,輕則造成服務繁忙,重則導致應用不可用

原创 30-你知道哪些算法?講一下它的內部實現過程?

上一課時我們介紹了數據結構的知識,數據結構屬於計算機存儲的基礎,有了它才能更好地將數據進行存儲。而算法可以這樣理解:它是爲數據結構服務的,使用合適的算法可以更快地操作和查詢這些數據。 算法的內容有很多,隨隨便便一本算法書有個 70

原创 29-紅黑樹和平衡二叉樹有什麼區別?

數據結構屬於理解一些源碼和技術所必備的知識,比如要讀懂 Java 語言中 TreeMap 和 TreeSet 的源碼就要懂紅黑樹的數據結構,不然是無法理解源碼中關於紅黑樹數據的操作代碼的,比如左旋、右旋、添加和刪除操作等。因此本課

原创 21-Redis 中如何實現的消息隊列?實現的方式有幾種?

細心的你可能發現了,本系列課程中竟然出現了三個課時都是在說消息隊列,第 10 課時講了程序級別的消息隊列以及延遲消息隊列的實現,而第 15 課時講了常見的消息隊列中間件 RabbitMQ、Kafka 等,由此可見消息隊列在整個 J

原创 24-垃圾回收算法有哪些?

說到 Java 虛擬機不得不提的一個詞就是**“垃圾回收”(GC,Garbage Collection)**,而垃圾回收的執行速度則影響着整個程序的執行效率,所以我們需要知道更多關於垃圾回收的具體執行細節,以便爲我們選擇合適的垃圾

原创 20-Redis 怎樣實現的分佈式鎖?

“鎖”是我們實際工作和麪試中無法避開的話題之一,正確使用鎖可以保證高併發環境下程序的正確執行,也就是說只有使用鎖才能保證多人同時訪問時程序不會出現問題。 我們本課時的面試題是,什麼是分佈式鎖?如何實現分佈式鎖? 典型回答 第 06

原创 27-單例的實現方式有幾種?它們有什麼優缺點?

單例模式是 Java 中最簡單的設計模式之一,它是指一個類在運行期間始終只有一個實例,我們就把它稱之爲單例模式。它不但被應用在實際的工作中,而且還是面試中最常考的題目之一。通過單例模式我們可以知道此人的編程風格,以及對於基礎知識的

原创 18-關係型數據和文檔型數據庫有什麼區別?

關係數據庫(Relational Database)是建立在關係模型基礎上的數據庫,藉助於幾何代數等數學概念和方法來處理數據庫中的數據。所謂關係模型是一對一、一對多或者多對多等關係,常見的關係型數據庫有 Oracle、SQL Se