原创 多線程的基本原理及挑戰

文章目錄由一個問題引發的思考多線程對於共享變量訪問帶來的安全性問題思考如何保證線程並行的數據安全性synchronized 的基本認識synchronized 的基本語法synchronized 的應用思考鎖是如何存儲的對象在內存

原创 Controller與RestController註解之間的關係

文章目錄ControllerRestControllerResponseBody @RestController註解相當於@ResponseBody+@Controller合在一起的作用 如果只是使用@RestControlle

原创 使用idea構建spring 5源碼(macos)

文章目錄1. 前置工作2. 使用idea 構建 spring 源碼2.1 下載 spring 5 源碼2.2 使用 idea 編譯源碼 1. 前置工作 安裝 JDK 8或更高版本 ❯ java -version java ve

原创 [08][01][01] I/O流--基本概念

文章目錄I/O 是什麼I/O 分類數據流I/O 體系結構I/O 流分類文件流管道流字節/字符數組流Buffered 緩衝流轉化流數據流打印流對象流序列化流非流類InputStream常用方法源碼解讀OutputStream常用方法

原创 [03][01][10] macOS下載配置Hsdis 、JITWatch

文章目錄HsdisHsdis是什麼下載Hsdis配置Hsdis運行HsdisJITWatchJITWatch是什麼下載JITWatch使用JITWatch Hsdis Hsdis是什麼 下載Hsdis git clone http

原创 AQS底層原理分析

文章目錄J.U.C 簡介LockLock 簡介Lock 的實現Lock 的類關係圖ReentrantLock 重入鎖重入鎖的設計目的ReentrantLock 的使用案例ReentrantReadWriteLockReentran

原创 [03][01][01] 併發編程的基本認識

文章目錄進程的概念線程的概念線程解決的問題線程的創建繼承 Thread 類實現 Runnable 接口Callable/Future帶返回值的線程ThreadPool多線程的實際應用zookeeper 源碼的異步責任鏈模式時序圖代

原创 [01][01][12] 責任鏈模式詳解

文章目錄1. 定義2. 使用場景3. 代碼實現3.1 抽象處理器3.2 具體處理器3.3 責任鏈3.4 測試類4. 優缺點4.1 優點4.2 缺點 1. 定義 使多個對象都有處理請求的機會,從而避免了請求的發送者和接收者之間的耦合

原创 [03][01][02][01] Java Hotspot虛擬機中的對象表示

文章目錄1. oopDesc類2. oopDesc的類體系3. markOopDesc類4. Handle類 1. oopDesc類 oopDesc類是Java對象在Hotspot中的基本表示,該類定義在文件hotspot/src

原创 [20][01][11] Fortify問題修復--Path Manipulation

文章目錄描述場景任意文件下載代碼分析修復方案建議任意文件上傳代碼實現修復建議代碼地址 描述 在對文件進行操作(讀,寫,刪除)的過程中,未對文件路徑進行有效的合法性校驗,導致文件被任意下載,上傳任意文件導致服務器被種植木馬,gets

原创 [08][01][01] Java I/O流

文章目錄I/O是什麼I/O分類數據流I/O體系結構字節流輸入字節流InputStreamFileInputStream輸出字節流字符流輸入字符流輸出字符流非流類RandomAccessFileFile I/O是什麼 I/O 指的是

原创 數據庫索引

1. 索引類型    根據數據庫的功能,可以在數據庫設計器中創建索引:唯一索引、主鍵索引和聚集索引。 儘管唯一索引有助於定位信息,但爲獲得最佳性能結果,建議改用主鍵或唯一約束。  1.1 唯一索引:   UNIQUE         例如:

原创 設計模式基礎

1. 23種經典設計模式 分類 設計模式 輔助記憶 創建型 工廠方法模式(Factory Method)、抽象工廠模式(Abstract Factory)、建造者模式(Builder)、原型模式(Prototype)、單例模式

原创 創建型設計模式

創建型設計模式成員 工廠方法模式 抽象工廠模式 建造者模式 原型模式 單例模式 1. 簡單工廠模式 1.1 定義 簡單工廠模式(Simple Factory Pattern):它屬於類創建型模式。在簡單工廠模式中,可以根據參數的不同返回

原创 Cglib動態代理實現原理.md

1. Cglib庫介紹 CGLIB是一個強大的、高性能的代碼生成庫。它被廣泛使用在基於代理的AOP框架(例如Spring AOP和dynaop)提供方法攔截。Hibernate作爲最流行的ORM工具也同樣使用CGLIB庫來代理單端關聯(集合