原创 【二】Java 序列化與反序列化

參考:Java 序列化的高級認識 一、概念 把對象轉換爲字節序列的過程稱爲對象的序列化。 把字節序列恢復爲對象的過程稱爲對象的反序列化。 對象的序列化主要有兩種用途: 1) 把對象的字節序列永久地保存到硬盤上,通常存放在一個文件中; 2)

原创 【七】Java NIO代碼例子(網絡和文件)

一、網絡IO TCP 服務端代碼 package com.sid.io.niov2; import java.io.IOException; import java.net.InetSocketAddress; import java

原创 【十八】Spring IOC 總結之getBean主流程和各個擴展點總結

一、getBean的流程簡介 Spring IOC主要分爲兩個大的部分,一部分是IOC容器的啓動,另一部分是getBean getBean的部分我盜個圖 圖一來自https://juejin.im/post/5dec9fe76fb9a01

原创 【二十二】Spring filed上使用@AutoWired註解,依賴注入源碼分析

一、簡介 不清楚實例化bean、填充屬性、初始化bean的順序、做的事、執行了哪些擴展器的請看我以前寫的這篇【十八】Spring IOC 總結之getBean主流程和各個擴展點總結 測試代碼的注入方式是:直接在成員變量上用@AutoWir

原创 【十七】Spring IOC 三級緩存解決循環依賴

一、spring ioc的三級緩存 1.哪三級 singletonObjects:第一級緩存,裏面放置的是已經實例化好的單例對象,是單例緩存池(singletonObjects)。 earlySingletonObjects:第二級緩存,

原创 分佈式之cap、base理論、flp不可能原理、一致性問題、共識算法

一、CAP理論 CAP理論:在一個分佈式系統中,最多隻能滿足C、A、P中的2個。 CAP含義: C:Consistency 一致性:同一數據的多個副本是否實時相同。all nodes see the same data at the s

原创 HTTP正向代理、反向代理、重定向

一、正向代理 Forward Proxy 在NAT技術(Network Address Translation)出現之前,所有主機無法直接與外網相連,要想上網,需要連接到一臺能夠訪問外網的Web服務器,再通過這臺服務器訪問外網。而這臺We

原创 【十五】Spring源碼分析之MVC------啓動時AbstractHandlerMethodMapping維護url-handlerMethod的關係

這裏貼一個我認爲寫得不錯得SpringMVC源碼分析的博客 SpringMVC源碼分析系列 引用一張它的圖 一、SpringMVC主要發揮作用的是哪些類 HandlerMapping(AbstractHandlerMethodMapp

原创 【九】高性能IO模型----Reactor與proactor

參考 Reactor與Proactor 高性能網絡編程6--reactor反應堆與定時器管理 兩種高效的服務器設計模型:Reactor和Proactor模型 一、Reactor簡介       Reactor模式是處理併發I/O比較常見的

原创 【二十】Spring IOC 總結之BeanFactory、ApplicationContext、BeanFactoryPostProcessor、BeanPostProcessor區別

一、BeanFactory和ApplicationContext的區別 1.BeanFacotry接口 負責生產和管理bean的一個工廠。 是Spring容器的頂層接口,提供了 IOC 容器應遵守的的最基本的接口 它有多種實現:如 De

原创 【十九】Spring IOC 總結之啓動時定位資源和BeanDefinition載入、解析、註冊(SpringBoot 掃啓動類所在包、starter、@Import)

源碼調試以spring boot 1.5.8.release爲例 Spring IOC容器初始化主要有以下幾個步驟 1、資源定位:找到配置文件。 2、BeanDefinition載入和解析 3、BeanDefinition註冊 4、實例

原创 【一】rabbitmq原理概述(exchange、queue、channel、connection、vhost)持久化、消息分發

一、架構圖 網上找的 二、exchange(交換機)  生產者發消息發往交換機,交換機會自己投遞消息到綁定的queue隊列 這裏有幾個點需要注意 1.exchange根據什麼規則把消息投遞到哪些queue中? exchange有4種類

原创 【二十一】SpringBoot jar可執行原理

一、spring-boot-maven-plugin插件 SpringBoot項目生成可執行jar包是在maven項目的pom文件中加入了一個插件 <build> <plugins> <plugi

原创 【三】Java NIO(channel、buffer、selector)

一、概述 Java NIO 由以下幾個核心部分組成: Channels Buffers Selectors 其它組件,如Pipe和FileLock,只不過是與三個核心組件共同使用的工具類。 二、Channel 我理解的:每個連接就是一個c

原创 【十六】Spring源碼分析之MVC------DispatcherServlet類的doDispatch(一次請求中SpringMVC主要做些什麼事)

一次請求中SpringMVC主要做些什麼事    getHandler,                     HandlerMapping通過URL查找handler    getHandlerAdapter,