原创 淺析操作系統和Netty中的零拷貝機制

零拷貝機制(Zero-Copy)是在操作數據時不需要將數據從一塊內存區域複製到另一塊內存區域的技術,這樣就避免了內存的拷貝,使得可以提高CPU的。零拷貝機制是一種操作數據的優化方案,通過避免數據在內存中拷貝達到的提高CPU性能的方案。 一、

原创 NIO之路4--MINA框架源碼解析

MINA框架是基於NIO的異步IO框架,上一文已經對MINA的理論及實踐做了分析,本文將對於MINA的整體源碼實現進行分析。 通過MINA的實際案例可以發現,MINA的IO實現相比於NIO的使用要簡單很多,因爲不需要關心IO的具體實現,只需

原创 NIO之路2---mina框架詳細解析

前言: 上一文分析了Java NIO的實現邏輯, 可以發現NIO相比於BIO來說性能提升了不止一個檔次,但是Java的NIO使用還有一個弊端,比如Buffer的API設計太過複雜,想要用好NIO就需要對於NIO的各個組件的所以API使用非常

原创 NIO之路2--Java中NIO源碼解析

一、IO多路複用 傳統的BIO服務器處理客戶端IO請求時會爲每一個客戶端請求都分配一個線程去處理,當客戶端數量增加時會導致服務端線程數過多而帶來性能隱患,所以迫不得已需要一個線程處理多個客戶端請求,也就衍生了多路複用IO模型,Java中的N

原创 整理操作系統IO模型

一、操作系統的IO交互模型 現代的操作系統對於存儲空間都有一套訪問限制控制,所以將存儲空間分成了用戶空間和內核空間。用戶空間負責給應用程序使用,應用程序可以訪問用戶空間內的數據,但是不可以訪問內核空間中的數據;而內核程序可以訪問計算機的所有

原创 Spring源碼解析--事務的實現原理和源碼解析

前言 在上一篇文章 Spring源碼解析--事務的詳細講解 中主要對Spring中事務的理論和實踐作了詳細整理,本文將透過現象看本質,從源碼的角度入手分析下Spring中事務的實現原理及相關源碼解析。 一、事務的相關組件 1.1、事務狀態T

原创 Spring源碼解析--事務的詳細講解

Spring爲用戶封裝了JDBC操作,所以就必然會遇到操作數據庫的事務問題,而Spring作爲強大的全能框架,必然會給用戶提供解決方案。 一、Spring中事務的配置方式 Spring中提供了多種配置事務的方式,主要分成兩大類:聲明式事務和

原创 Spring AOP解析(2)--AOP的實現原理及源碼解析

前言: 上一篇對於AOP的使用做了簡單的介紹,本文開始着重對於AOP的實現原理進行解析,AOP的使用主要是通過自定義標籤<aop:aspectj-autoproxy>開啓,所以就需要通過該標籤入手開始探尋AOP的奧祕 一、<aop:aspe

原创 Spring AOP解析(1)--AOP的簡介及使用

前言 軟件開發的目的是爲了解決各種需求,而需求又分成業務需求和系統需求,比如有一個登錄功能,那麼用戶輸入密碼之後登錄就是業務需求,而在用戶登錄前後分別打印一行日誌,這個就是系統需求;又或者用戶訪問系統的網頁獲取數據這個是業務需求,而用戶每一

原创 Spring擴展接口解析4--bean後置處理器BeanPostProcessor接口

前言 衆所周知,Spring的核心思想爲IOC和AOP,而AOP實際就是在對業務代碼進行邏輯增強,以切面的形式將需要增強的代碼加入到業務代碼前後去執行。而處理業務代碼的增強,在Bean的初始化過程中通用採用了AOP設計思想,來對bean進行

原创 spring擴展接口解析3--Aware系列接口

前言 Spring的核心思想之一就是IOC(控制反轉),而IOC的實現方式DI(依賴注入),也就是說當某個bean需要依賴另一個bean時,就可以採用依賴注入的方式將依賴的bean自動注入到該bean中。但是如果一個bean依賴的對象並非是

原创 spring擴展接口解析2--生命週期LifeCycle接口

前言 Spring容器本身是有生命週期的,比如容器啓動則開始生命和容器關閉則結束生命,如果想讓Spring容器管理的bean也同樣有生命週期的話,比如數據庫連接對象,當容器啓動時,連接bean生命週期開啓,當容器關閉時,連接bean生命週期

原创 spring擴展接口解析1--InitializingBean接口和Disposable接口

前言 Spring框架之所以強大,其中有一個核心功能就是提供了擴展支持,Spring容器雖然管理了所有的Spring Bean,單例的bean初始化之後就會放入Spring容器,在整個生命週期內都不可變。但是在實際業務場景中,有時我們需要對

原创 spring源碼解析--事件監聽機制的使用和原理解析

Spring的context包是對於beans包的功能擴展,比如在BeanFactory的基礎容器之上擴展爲了ApplicationContext上下文。而ApplicationContext處理包含了BeanFactory的全部基礎功能之

原创 數據結構1---紅黑樹

紅黑樹 紅黑樹本質上也是二叉查找樹,但是紅黑樹是一種含有紅黑結點並且能夠自動平衡的二叉查找樹 1、紅黑樹的原則: 1、所有結點要麼是紅色要麼是黑色2、根結點必須是黑色3、葉子結點必須是黑色(NIL結點)4、紅結點的兩個子結點必須是黑色5、任