原创 併發編程系列(六)volatile 之 as-if-serial 指令重排 volatile內存語義 volatile原理

目錄 1. as-if-serial 2. 可見性實現原理 3. 禁止指令重排的原理分析 4. 內存屏障 5. 原理 序號 名稱 鏈接地址 1 併發編程系列(一)創建線程的三種方式及線程如何完成上下文如何切換 https://blog.c

原创 併發編程系列(九)ThreadLocal是如何解決共享變量的併發問題及源碼分析

目錄 1. ThreadLocal原理分析 2. ThreadLocal源碼分析 3. ThreadLocal內存泄露問題 序號 名稱 鏈接地址 1 併發編程系列(一)創建線程的三種方式及線程如何完成上下文如何切換 https://blo

原创 ShardingSphere系列(一) 基本概念

1. sharding-jdbc基本概念 1.1 垂直(縱向) 切分 將不同的表(或者Schema)拆分代不同的數據庫(主機之上)垂直拆分與業務有關,例如將原來在同一個庫下的表,把表分散到不同庫下(與微服務的概念相通/訂單系統-用戶系統·

原创 ShardingSphere系列(二) 分片策略

本文章適用於初學者demo;或概念理解中策略都在git中打好了tag想要學習那種策略仔細閱讀redme即可; 具體代碼與明細見:https://github.com/ssy-githup/shardingjdbc 1.1 標準策略: 對應

原创 併發編程系列(十)AQS同步器獨佔鎖加鎖與解鎖-源碼解讀

目錄 1.AbstractOwnableSynchronizer源碼分析 2.AQS同步器下的Node源碼: 3.AbstractQueuedSynchronizer 獨佔鎖 4.1.1AQS獨佔鎖加鎖的過程 4.1.2 acquire(

原创 併發編程系列(十二)AQS同步器條件鎖(Condition)加鎖解鎖源碼解讀

目錄 1.Condition接口 2. AQS Condition條件鎖實現 3.同步隊列與條件隊列 3.1 條件隊列 3.2 同步隊列與條件隊列的聯繫 3.3入隊和出隊時的鎖狀態  4. Conditionobject 源碼分析 4.1

原创 IO系列(一) IO模型基礎詳解

目錄 1. BIO(Blocking IO) 應用場景: 1.2 NIO(Non Blocking IO) 應用場景: 總結: 3. AIO(NIO 2.0) 4. BIO、 NIO、 AIO 對比: 總結: Java共支持3種網絡編程I

原创 JAVA設計模式(系列) 工廠模式

工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,並且是通過使用一個共同的接口來指向

原创 IO系列(二) netty組件及線程模型詳解

文章目錄Netty的使用場景:netty模型詳解:Netty核心模塊組件1. Bootstrap、ServerBootstrap2. Future、ChannelFuture3. Channel4. Selector5. NioE

原创 JAVA設計模式(系列) 單例模式

文章目錄簡介懶漢模式:餓漢模式:思考:通過流獲取一個對象實例是否是同一個?枚舉天然支持單例 簡介 設計模式的六大原則: 單一原則:一個類或者一個方法只負責一個職責,各個職責的程序改動,不影響其它程序。 里氏代換: 所有引用父類的地

原创 JAVA設計模式(系列) 原型模式

淺拷貝/深拷貝 序列化機制實現深拷貝 模式定義:原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的的對象實例; public class ProtoType { public static void main(Str

原创 spring cloud gateway實現動態配置(持久化到mysql)網關-附源碼

官方教程講的都是提前在配置文件中配置網關,而在實際工作中不可能隨便重啓網關服務,這時動態配置就急需要解決; 動態網關配置:redis mysql gateway2.0.1; 具體代碼在mall-gateway模塊:https:/

原创 JVM系列 垃圾收集器相關參數大全

1. GC常用參數 1.1 堆棧設置  -Xss:每個線程的棧大小   -Xms:初始堆大小,默認物理內存的1/64   -Xmx:最大堆大小,默認物理內存的1/4   -Xmn:新生代大小   -XX:NewSize:設置新生代初始大小

原创 spring cloud Alibaba系列(一)nacos配置中心使用詳解

目錄 簡介 1. Nacos服務端搭建 1.2 Linux環境下使用nacos服務端 1.3 windows下搭建nacos服務端 2. nacos client端搭建 2.1 加入依賴 2.2加入註解:@EnableDiscoveryC

原创 深入理解JVM系列(一)Java 內存區域

java內存區域是java虛擬機最基礎的知識,只有透徹理解這部分內容才能理解其他部分本篇文章在其他地方摘錄了不少東西也有在周志明《深入理解java虛擬機》學到的不少東西,這本書在國內被奉爲虛擬機的聖經還是很有道理! 1 運行時數據區 JV