原创 Spring源碼分析-循環依賴

導語   前面提到了實例化Bean其實是一個複雜的過程,而在這個過程中比較難以理解的就是循環依賴的問題,下面就先來看看什麼是循環依賴 文章目錄什麼是循環依賴?Spring 是怎麼解決循環依賴的?1、構造器循環依賴2、sette

原创 Spring源碼分析-從源碼看BeanFactory和FactoryBean的區別

導語   在使用Spring 中最爲核心的操作就是Bean的創建以及使用。下面就來帶着大家一起來分析一下關於Spring的Bean的加載相關的知識 文章目錄BeanFactory getBean方法原理分析1、轉換對應的Bea

原创 Spring源碼分析-如何獲取Bean對象

導語   在上篇博客中 介紹了關於BeanFactory和FactoryBean相關的操作,並且查看了在兩個操作中他們具體的代碼有那些,這篇博客主要就是順着上篇博客思路繼續來分析Bean對象的獲取。下面就讓我們進入主題 文章目

原创 Dubbo源碼分析系列-Dubbo的動態編譯原理

導語   Java程序時運行在JVM中的Class文件,在一般的情況下都是把左右的Java文件編寫完成之後,統一進行編譯操作,做完編譯操作之後,統一由JVM進行加載。而所謂的動態編譯則是在JVM進程運行的過程中把源文件編譯爲字節

原创 淺談分佈式和微服務架構

文章目錄一、微服務簡介1、微服務的誕生2、微服務架構與SOA架構的區別二、CAP理論三、分佈式事務四、服務拆分總結 一、微服務簡介 1、微服務的誕生   在微服務概念出現之前還有一個概念是比較值得關注的就是SOA(面向服務架構),

原创 從源碼分析RocketMQ系列-RocketMQ消息持久化源碼詳解

導語   在上篇分析中,提到了一個概念處理器,並且在進入到最終NettyIO的時候看到了一個Pair的對象,這個對象存儲了兩個對象,一個是執行器,一個是處理器,在進入Runable對象的時候看到封裝到Pair對象中的一個處理器N

原创 Java高併發編程詳解系列-Balking設計模式

導語   在實際操作中當某個線程因爲發現其他線程正在進行相同的工作而放棄即將開始的任務,這種情況就被稱爲是Balking模式,Balking英文的意思是猶豫。在多個線程監控某個共享變量,A線程監控到共享變量發生變化後立即觸發某個

原创 RabbitMQ學習筆記-RabbitMQ簡介

導語   RabbitMQ 是現在比較熱門的消息中間件,在互聯網行業和傳統行業都有大量地使用。消息中間件有很多,RabbitMQ在高可靠、易擴展、高可用等方面都有很大的優勢。在學習RabbitMQ的過程中都有所提升。 文章目錄

原创 JVM優化系列-String對象在虛擬機中的實現

導語   String字符串在是各種編程語言中都是重頭戲。各種語言中對字符串的操作都是進行有特殊化的處理,例如在C語言中根本沒有字符串這個概念,在C語言中的字符串是用字符數組來表示的。在Java中,String作爲非基本數據類型

原创 JVM優化系列-詳解常用的虛擬機調優參數

導語   需要對虛擬機進行診斷,首先需要了解如何進行虛擬機的配合和跟蹤,這裏就來說說有那些虛擬機配置參數,通過它們來對虛擬機進行跟蹤和配置。 文章目錄虛擬機跟蹤調試參數如何讀懂虛擬機日誌GC基本參數分析GC發生的時間跟蹤系統內

原创 Java高併發編程詳解系列-Guarded Suspension設計模式

導語   什麼是Guarded Suspension模式,Suspension 意思是掛起,暫停的。而Guarded則表示擔保的意思,連起來的就是確保掛起。也就是說當線程訪問某個對象的時候,發現條件不滿足,就暫時掛起等待條件滿足

原创 Shiro系列-Shiro如何實現身份驗證

導語   下面就來按照順序依次介紹一下Shiro的使用場景,場景代碼後續會放到GitHub上面希望大家可以多多支持。首先先來介紹一下Shiro的身份認證。 文章目錄Shiro身份驗證入門小例子環境準備登陸/退出操作1、準備用戶

原创 JVM優化系列-Java對象引用與可觸及強度

導語   垃圾回收機制本身依託於對象的可觸及性,也就是從根節點開始是否可以訪問到這個對象,如果可以則說明這個對象是可觸及的,也就是可達的。如果訪問不到說明這個對象已經不能被使用到了。到這個時候這個對象就要被進行回收了。那麼一個對

原创 JVM優化系列-詳解JVM堆內存分析

導語   瞭解過java虛擬機的讀者都知道,在JVM的內存可以分爲堆內存和非堆內存,在之前的博客中分享了關於JVM常見參數的配置。這次分享的內容主要是對堆和非堆內存參數的配置   在Java程序運行的過程中,如果堆空間內存不足

原创 Python精通-Python字典操作

導語   之前的內容中分享了關於數字、字符串、布爾值、列表、元組等數據類型,接下來看一個與之前的數據結構不一樣的數據類型。字典,這裏的字典與我們使用的字典是不一樣的,它有點類似於編程意義上的Map,是以鍵值對的方式來進行表示的。