原创 【dubbo源碼解析】 --- dubbo spi 機制(@SPI、@Adaptive)詳解

本文對應源碼地址:https://github.com/nieandsun/dubbo-study 文章目錄1 @SPI 標籤 及其使用簡介2 @Adaptive標籤 及其使用簡介2.1 @Adaptive標註在類上的具體含

原创 【dubbo源碼解析】 --- dubbo spi 機制之@Activate簡介

本文對應源碼地址:https://github.com/nieandsun/dubbo-study 文章目錄1 @Activate標籤的應用場景2 @Activate標籤 及其使用簡介2.1 簡單看一下@Activate標籤

原创 【dubbo源碼解析】--- 通過javassist/JavassistCompiler動態生成一個實例對象

本文對應源碼地址:https://github.com/nieandsun/dubbo-study 1 問題的提出 相信對於每一個java程序員來說,早已經習慣了寫一個java文件 —> 編譯成class文件 —> 加載到J

原创 【SPI】 --- java spi 機制簡介

本文對應源碼地址:https://github.com/nieandsun/dubbo-study 文章目錄1 spi需要解決的問題剖析2 java spi使用簡介2.1 使用java spi需要遵循的約定2.2 示例 1

原创 【ZooKeeper】 --- ZK數據模型、節點類型、節點屬性、watch機制

文章目錄1 、ZK數據模型2 、ZK節點類型3 、ZK節點屬性4、 ZK watch機制4.1 NodeCreated --- 監聽的節點(還未創建)被創建時觸發4.2 NodeDataChanged --- 監聽節點的數據發生改

原创 【併發編程】 --- 從字節碼指令的角度去理解synchronized關鍵字的原理

文章目錄1 synchronized & 字節碼指令2 字節碼指令 --- monitorenter3 字節碼指令 --- monitorexit4 同步方法對應的字節碼指令小結需要思考的問題 源碼地址:https://git

原创 【併發編程】 --- 從JVM源碼的角度進一步去理解synchronized關鍵字的原理

文章目錄1 openjdk(hotspot)源碼下載2 monitor對象簡介3 monitorenter、monitorexit與monitor之間的關係4 爲什麼說monitor是重量級鎖應該知道的事 源碼地址:https:

原创 【實用小技巧】--- Sublime + 正則表達式快速構建domain類

文章目錄1 面臨的問題2 我的解決方式3 簡單介紹一下2中正則表達式的含義 1 面臨的問題 今天下午與另外一個部門對接,他們的一張表總共有42個字段,而且我們之間的交互使用的是webservice, 要求我必須把類似於下面的數據

原创 【併發編程】 --- Reentrantlock源碼解析5:再探不可中斷性 + 線程unpark後詭異的Thread.interrupted()判斷

文章目錄1 想要讀懂這篇文章必須要擁有的前置知識2 想寫這篇文章的原因3 困擾我很久的Reentrantlock源代碼1 --- 貌似無用的變量failed4 困擾我很久的Reentrantlock源代碼2 --- unpark

原创 【併發編程】 --- Runnable、Callable、Future和FutureTask之間的關係

文章目錄1 創建一個線程的方式到底有幾種???2 如何使用FutureTask 、Future、Callable、線程池實現線程2.1 FutureTask + Callable實現多線程2.2 線程池+Future+Calla

原创 【併發編程】 --- synchronized/ReentrantLock兩大特性(可重入性和不可中斷性)介紹

文章目錄1 可重入特性1.1 可重入的含義及synchronized可重入特性演示1.2 簡單說一下synchronized可重入原理2 synchronized不可中斷特性 --- interrupt和stop都不可中斷2.1

原创 【redis知識點整理】---centos7下redis的安裝 、啓動、連接和關閉

最近遇到一個線上bug,關係到了fastjson、dubbo、 redis 和 泛型,之所以這樣說,是因爲排查問題 到 解決問題的思路大致如此 —> 我覺得我之後應該會抽出時間寫一篇博客,聊聊這個事 —> 但是最近實在太忙了

原创 【併發編程】 --- Reentrantlock源碼解析4:公平鎖加鎖過程中 [判斷當前線程是否要排隊的具體細節] 超詳細解析

文章目錄1 簡單回顧2 源碼 + 整體邏輯流程梳理3 高併發環境下當前線程使用公平鎖時判斷自己是否要排隊的具體實現細節3.1 h != t3.1.1 h != t 不成立時(即h等於t時) ---> 不用排隊的原因3.1.1.

原创 【消息中間件】--- RocketMQ核心概念介紹 + 生產者簡介 + 消息存儲簡介

本文對應源碼地址:https://github.com/nieandsun/rocketmq-study rocketmq官網:https://rocketmq.apache.org/docs/quick-start/ rock

原创 【redis知識點整理】 --- springboot2.X使用lettuce連接池集成redis

本文代碼對應的github地址:https://github.com/nieandsun/redis-study 不出意外的話,很多公司操作redis應該還是使用的jedis。 當然應該也有公司比較能耐,直接把操作redi