原创 NIO 五 文件通道

文章目錄一 通道和流的區別二 已實現的主要通道三 FileChannel四 API介紹4.1 獲取FileChannel對象4.2 數據寫入4.2.1 write(ByteBuffer src)4.2.2 write(ByteBu

原创 LRU算法及應用

文章目錄一 什麼是LRU算法二 手工實現LRU2.1 簡單鏈表實現2.2 解決命中率和緩存污染問題2.3 解決執行效率問題三 Redis如何利用LRU3.1 緩存淘汰策略3.2 LRU實現3.2.1 近似算法3.2.2 近似算法優

原创 JVM參數設置——配置入口篇

文章目錄一 前言二 配置JVM參數的入口2.1 JavaApplication的參數配置入口2.2 IDE工具的參數配置入口2.2 WEB容器的參數配置入口2.3 服務端進程的配置入口三 查看JVM配置信息四 結語 一 前言   

原创 ORM框架設計及實現

文章目錄一 對象記錄映射二 效率和性能三 數據訪問描述信息四 字段類型轉換五 數據訪問基類六 統一異常處理七 數據訪問框架八 數據源創建工廠九 SQL指令解析十 補充DAO接口實現十一 測試十二 其他問題 一 對象記錄映射   本

原创 積少成多系列傳送門

一 前言   已經休息到第五天了,書也看了,遊戲也玩了,準備調整一下生活狀態爲節後工作做個鋪墊,然後突然冒出一個想法,是時候整理一下零散的知識點了。   近兩年慢慢的發現,個人能力的高低和收入的多少並沒有什麼線性關係,究其本質在於

原创 Java鎖手冊

文章目錄零 致歉一 前言二 鎖分類三 鎖介紹2.1 悲觀鎖2.2 樂觀鎖2.3 阻塞鎖2.4 自旋鎖2.4.1 TicketLock2.4.2 CLHLock2.4.3 MCSLock2.5 無鎖2.6 偏向鎖2.7 輕量級鎖2.

原创 橋接模式於外發設計的應用思路

文章目錄一 設計模式二 設計原則2.1 單一職責2.2 里氏替換2.3 依賴倒置2.4 接口隔離2.5 知道最少2.6 開閉三 外發需求四 橋接模式五 維度抽象六 應用裝配七 加深優化八 結語 一 設計模式   今天在同事工位上看

原创 Java鎖應用及源碼原理分析

文章目錄一 前言二 CAS源碼分析及應用三 重入鎖ReentrantLock四 共享鎖ReentrantReadWriteLock五 結語 一 前言   上一篇《Java鎖手冊》中以特性爲角度對Java中的各類鎖進行了初步的介紹,

原创 NIO 四 通道接口

文章目錄一 通道二 通道接口三 接口說明3.1 AutoCloseable3.2 Closeable3.3 Channel2.4 InterruptibleChannel2.5 ReadableByteChannel2.6 Sca

原创 NIO 三 緩衝區數據讀寫

文章目錄一 自增讀寫1.1 單數據自增讀寫1.2 批量數據自增讀寫1.2.1 定長讀寫1.2.2 完全讀寫1.3 剩餘數據寫入二 目標讀寫三 值類型數據讀寫四 結語 一 自增讀寫   先打預防針,緩衝區的讀寫複用是通過數據寫入覆蓋

原创 NIO 二 創建緩衝區

文章目錄一 前言二 通過顯式的數組對象創建三 通過隱式的數組對象創建四 創建直接緩衝區五 複製緩衝區5.1 淺拷貝緩衝區5.2 只讀拷貝5.3 緩存切分六 緩存數據格式轉換七 結語 一 前言   前一篇博客中介紹了緩衝區Buffe

原创 NIO 一 緩衝區

文章目錄一 緩衝區1.1 什麼是緩衝區1.2 直接緩衝區1.3 NIO緩衝區實現二 核心參數2.1 參數介紹2.2 參數限定條件2.3 參數終值2.4 參數操作API2.4.1 獲取緩衝區尺寸2.4.2 獲取緩衝區可讀寫尺寸限制

原创 通信問題引出進制轉換Bug

文章目錄一 數組長度爲負二 排查過程三 數據存儲四 碼制轉換五 進制轉換六 結語 一 數組長度爲負   歷時兩年半,項目終於成功上線(👏,現階段還沒有對外發布項目上線的新聞公告,大家再等兩天)。所以很久一段時間我都沒有寫學習筆記了

原创 AOP層層遞進 第一部分 代理

文章目錄一 理解代理二 增強函數三 代理模式四 JDK動態代理五 CGLIB動態代理 一 理解代理   代理是一種設計模式,指對目標對象方法的間接調用,可以實現不修改原方法邏輯的前提下擴展功能,這遵循了開閉原則。但我始終覺得代理這

原创 DJB算法

文章目錄緩存原理隨機性Time33近似碰撞位移計算取整型最大值乘除2的N次方乘33的位移元算爲什麼是33解決負數問題其他Hash算法結語 緩存原理   諸如我們經常使用的Redis,其讀寫速度非常快的原因在於它的存儲結構是一個Ha