原创 Java join()方法、wait()方法和sleep()方法的理解

join() join()方法來自於Thread,join()方法的作用是 阻塞 調用該方法的線程,使其進入 TIMED_WAITING 狀態,直到被調用的線程執行完畢,原方法繼續執行。 如以下代碼,在主線程中調用join()方法,會首先

原创 Java——AQS隊列變化時序圖分析

AQS隊列 添加一個節點 頭節點釋放

原创 Spring 之 SpringMVC運行時序圖以及源碼解析

SpringMVC運行時序圖 SpringMVC工作機制 1.ApplicationContext初始化時用Map保存所有的url和controller對應關係。 2.根據請求URL找到對應的controller,並從controlle

原创 MyBatis 體系結構與工作原理-update流程時序圖

目錄   update流程時序圖 創建會話工廠類 創建會話 獲取代理對象 調用代理對象方法,執行SQL update流程時序圖 創建會話工廠類 創建會話 獲取代理對象 調用代理對象方法,執行SQL MyBatis裏面用到了那些設計

原创 學習zookeeper,看看這一篇

zookeeper學習總結 zookeeper是一個服務於分佈式應用程序的中間件協調服務 單體架構到微服務架構 單體架構下,一個完整的流程比如"購物",可以在單體架構中完成整個流程。 分佈式架構下,服務進行細化,拆分,涉及到

原创 Spring AOP運行時序圖

時序圖

原创 IDEA搭建Spring+SpringMVC項目--整合MyBatis流程

1.首先通過idea新建maven項目,如圖 2.建立完整的項目結構 3.配置maven依賴 其中包含啓動項目所需要的插件 <dependencies> <!-- 單元測試包 --> <dependency>

原创 Netty(六)—關於Pipeline

Netty之Pipeline 不管時Netty客戶端和服務端,都出現了Pipeline的身影 從之前的學習可以大致瞭解到 在Netty中每個Channel都有且僅有一個ChannelPipeline與之對應 官方解釋

原创 Spring DI運行時序圖以及源碼分析

時序圖 SpringDI-依賴注入的概念 依賴注入發生的時間 當SpringIOC容器完成了Bean定義資源的定位、載入和解析註冊以後,IOC容器中已經管理了Bean定義的相關數據。但此時IOC容器還沒有對所管理的Bean進行依賴注入。

原创 Java 之 關於volatile的一些理解

1.volatile volatile關鍵字是一個特徵修飾符,確保本條指令不會因編譯器的優化而省略。可以li理解爲阻止編譯器對代碼進行優化。 先了解一下原子性(atomicity)和 可見性(visibility)以及有序性 1.1原子性

原创 Spring 之Srping IOC運行時序圖

加載XML文件——創建IOC容器時序圖 源碼理解 首先需要找到入口。IOC容器初始化運行的入口。 回顧 什麼是SpringIOC IOC(Inversion Of Control)控制反轉,所謂控制反轉,就是把我們代碼中需要實現的對象的

原创 Java - 深入探究ConcurrentHashMap(一)

目錄 什麼是ConcurrentHashMap ConcurrentHashMap源碼分析 JDK1.7和JDK1.8版本的變化 從put方法切入 put方法-初始化數組  initTable() put方法 - tabAt put方法-

原创 序列化的應用與深入

序列化和反序列化 序列化 序列化是一種用來處理對象流的機制—即把對象轉換爲字節序列的過程 反序列化 把字節序列恢復爲對象的過程稱爲對象的反序列化 主要用途 對象的字節序列可永久地保存到硬盤上,通常存放在文件當中 在網絡上

原创 Netty(三)關於NioEventLoopGroup

學一學Netty中的NioEventLoopGroup 一個Netty程序啓動時,至少要指定一個EventLoopGroup 假如我們使用NIO,那我們通常使用NioEventLoopGroup 使用BIO,那我們可以初始化Oi

原创 Java synchronized-鎖的概念

目錄   synchronized的用法 關於鎖 synchronized鎖的升級 偏向鎖 基本原理 偏向鎖的獲取和撤銷邏輯 偏向鎖的撤銷 輕量級鎖 自旋鎖 輕量級鎖的解鎖 重量級鎖 synchronized與wait、notify、no