原创 Tomcat源碼分析-啓動init過程

環境: tomcat 9.0.36 默認配置 目標: 掌握容器啓動的基本流程,以及一些代碼風格。 需要提前掌握的知識: Tomcat容器的層次結構 Tomcat主函數入口: Bootstrap.java synchronized

原创 Tomcat源碼分析-啓動start過程

繼上一篇Tomcat源碼分析-啓動init過程,本篇將介紹start過程。 Bootstrap.java public void start() throws Exception { if (catalinaDae

原创 Tomcat源碼分析-處理HTTP請求

繼上篇Tomcat源碼分析-啓動start過程,最後開啓了Acceptor線程。我們的入口便是它了。 目標: 瞭解Tomcat處理HTTP請求,Tomcat NIO,容器處理流程 需要提前學習: 容器整體架構,Java NIO相關

原创 SpringMVC源碼閱讀-父子容器創建過程

文章目錄普通配置文件方式父容器子容器SpringBoot方式知識擴展 目的: 主要是瞭解配置文件方式的父子容器創建 普通配置文件方式 父容器 入口: ContextLoaderListener.java publi

原创 Redis緩存使用總結

爲什麼使用緩存? 主要有兩個用途: 第一個通過緩存來直接返回數據,不需要再從數據庫取出數據(加快讀取響應) 第二個支持高併發,在高併發環境下數據庫根本撐不住這麼多併發量,需要藉助緩存實現高併發. 緩存分類? 本地緩存: 由

原创 《垃圾回收的算法與實現》讀書筆記

文章目錄概述垃圾回收算法的評價標準:標記-清除算法優點缺點優化點引用計數法優點缺點優化點複製算法優點缺點優化點標記-整理算法優點缺點分代垃圾回收記錄集倖存空間滿了怎麼辦?優點優化點增量式垃圾回收優點和缺點 概述 垃圾回收算

原创 ThreadPoolExecutor源碼分析

文章目錄submit方法execute方法addWorker方法addWorkerFailed方法runWorker方法getTask方法tryTerminate方法 成員變量以及構造方法 public class Threa

原创 HashMap 1.8源碼分析

文章目錄成員變量以及構造函數get()方法put()方法擴容 成員變量以及構造函數 public class HashMap<K,V> extends AbstractMap<K,V> implements Map

原创 ThreadLocal源碼分析(簡易)

本文大致過了一下源碼,希望大家先看我之前寫的關於ThreadLocal的理論講解Threadlocal總結 import java.lang.ref.*; import java.util.Objects; import java

原创 分佈式理論總結

文章目錄冪等性最終一致性分佈式鎖設計思想 冪等性 爲什麼會出現冪等性問題呢? 在傳統單體架構中,服務調用只有成功與失敗兩種狀態,但是在分佈式環境下,服務調用還可能出現超時問題.服務調用超時如何解決呢?我們不能盲目重試,因爲我們

原创 ThreadPoolExecutor源碼分析(待更新)

文章目錄線程池狀態execute方法addWorker方法Worker類submit方法 線程池狀態 //高3位用於表示狀態,低29位表示線程的數量 private final AtomicInteger ctl

原创 計算機網絡總結

文章目錄前言網絡設備交換機/集線器(數據鏈路層)路由器(網絡層)網絡分層數據鏈路層網絡層DNS解析 前言 單純地對所學的知識進行大致的概述. 網絡設備 交換機/集線器(數據鏈路層) 兩者對比: 交換機使用共享式帶寬,

原创 CAP理論總結

CAP理論概述 C,A,P是什麼? C(一致性):所有的狀態都是一致的,即數據都相同. A(可用性):能夠在一般情況下都能提供可用的服務. P(分區容錯性): 允許網絡在分區之間通信失敗. CA架構 傳統上的單體架構,

原创 設計模式-秋招總結(純乾貨)

文章目錄單例模式工廠模式建造者模式原型模式責任鏈模式觀察者模式命令模式迭代器模式中介模式狀態模式策略模式模板方法 單例模式 作用:爲了保證某個類只有一個對象存在. 實現:將構造函數私有化,然後提供一個靜態的單實例.構造這個靜態

原创 數據結構總結

文章目錄高級數據結構紅黑樹與AVL樹B樹與B+樹與B*樹哈希跳躍表字典樹堆位圖AC自動機 高級數據結構 紅黑樹與AVL樹 AVL樹: AVL樹、紅黑樹都是自平衡的二叉搜索樹,時間複雜度都爲(log N)。AVL通過左旋,右