原创 JVM必知必會:G1垃圾回收器
JVM必知必會:G1垃圾回收器 G1是一種服務端應用使用的垃圾收集器,目標是多核、大內存的機器上,它在大多數情況下可以實現指定的GC暫停時間,同時還能保持較高的吞吐量。 特點: 併發收集 壓縮空閒空間不會延長GC的暫停時間 更易預
原创 設計模式:學習筆記(15)——狀態模式
設計模式:學習筆記(15)——狀態模式
原创 Java微服務:緩存穿透和緩存雪崩
Java微服務:緩存穿透和緩存雪崩 緩存穿透 緩存是對數據庫的一道保護牆,緩存穿透就是衝破了我們的保護牆。即調用方傳來的永遠都是我們緩存中不存在的Key,這樣每次都需要去數據庫中查詢一次,當大量這樣的請求過來時,瞬時數據庫的壓力會很大,
原创 馬士兵多線程直播筆記(下)
馬士兵多線程直播筆記(下) CPU與緩存 緩存L1、L2、L3失效後回去內存中找,然後依次返回L3、L2、L1. 緩存一致性協議(MESI) 同一個緩存行在多個CPU內存中,一個修改後,其他CPU也需要感知! 緩存行
原创 馬士兵多線程直播筆記(上)
線程與進程 進程:操作系統分配資源的基本單位。 線程:CPU調度(執行)的基本單位。共享進程的資源。 一個CPU同一時間只能執行一個線程,表象是線程切換(Context Switch)。對CPU來說,寄存器存數、ALU計算、PC(程
原创 設計模式:學習筆記(6)——抽象工廠模式
設計模式:學習筆記(6)——抽象工廠模式 抽象工廠模式 在工廠方法模式中具體工廠負責生產具體的產品,每一個具體工廠都對應一種具體產品,工廠方法也具有唯一性,一般情況下,一個具體工廠只有一個工廠方法或者一組重載的工廠方法。但是有時候我們需
原创 設計模式:學習筆記(14)——工廠方法模式
設計模式:學習筆記(14)——工廠方法模式 理解 在簡單工廠模式中只有一個工廠類,該工廠類處於對產品類進行實例化的中心位置,它需要知道每一個產品類的實現細節,並決定何時實例化哪一個產品類。簡單工廠模式最大的缺點就是當有新產品要加入系統中
原创 設計模式:學習筆記(3)——簡單工廠模式
設計模式:學習筆記(3)——簡單工廠模式 簡單工廠模式 我們都知道工廠是根據產品類的圖紙生產產品的。簡單工廠模式中,一個工廠類處於對產品實例化的中心位置上,它知道每一個產品,他決定哪一個產品類應當被示例化。 簡單工廠模式允許客戶端相
原创 Java高併發教程:詳解NIO Selector類
Java高併發教程:詳解NIO Selector類 NIO Selector Java NIO Selector可以檢查一個或多個Java NIO Channel實例,並確定哪些通道可供使用,例如read或write。 這樣,單個線程可
原创 Java高併發教程:詳解NIO Buffer類及其屬性
Java高併發教程:詳解NIO Buffer類及其屬性 NIO Buffer NIO的Buffer(緩存區)本質上是一個內存塊,既可以寫入數據,也可以從中讀取數據。NIO的Buffer類,是一個抽象類,位於java.nio包中,其內部是
原创 Java高併發教程:詳解NIO Channel(通道)類
Java高併發教程:詳解NIO Channel(通道)類 NIO Channel NIO中一個連接用一個Channel來表示。從更廣泛的層面來說,一個通道可以表示一個底層的文件描述符,例如硬件設備、文件、網絡連接等。然後,遠遠不止如此,
原创 Java高併發教程:Future異步回調模式
Java高併發教程:Future異步回調模式 Join異步阻塞 FutureTask異步回調 Guava異步回調 Netty的異步回調 Netty和Guava一樣,實現了自己的異步回調體系:Netty繼承和擴展了JDK
原创 Java高併發教程:Reactor反應器模式
Java高併發教程:Reactor反應器模式 Reactor反應器模式 到目前爲止,高性能網絡編程都繞不開反應器模式。很多著名的服務器軟件或者中間件都是基於反應器模式實現的,如Nginx、Redis、Netty。 反應器模式是高性能
原创 劍指Offer:連續子數組的最大和
劍指Offer:連續子數組的最大和 題目描述 輸入一個整形數組,數組裏有正數也有負數。數組中的一個或連續多個整數組成一個數組。求所擁有子數組的和的最大值。要求時間複雜度爲O(n) 題目分析 我們可以用動態規劃的思想來解決這個問題。以
原创 劍指Offer:數組中的逆序對
劍指Offer:數組中的逆序對 題目描述 在數組中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%100000