原创 Java 細節彙總(4)

文章目錄1. Arrays 中的雙軸快排2. Java 中 switch 支持字符串的原理 1. Arrays 中的雙軸快排 Jdk 1.7 之後,工具類 Arrays 中的排序方法在排序對象爲基本數據類型的時候會使用雙軸快排,這

原创 Netty源碼分析(2)-服務端啓動流程

文章目錄1. 服務端啓動步驟2. 服務端啓動流程詳解2.1 事件分發組件配置及初始化2.2 業務處理組件 Channel 的初始化及註冊2.3 服務端 ServerSocketChannel 綁定 1. 服務端啓動步驟 一個 Ne

原创 SpringBoot 自動配置核心註解 @Import 解析 -- TBD

文章目錄1. @Import 詳解1.1 @Import 的作用1.2 @Import 的使用方式2. @Import 註冊目標類的流程 1. @Import 詳解 1.1 @Import 的作用 1.2 @Import 的使用方

原创 IDEA 從入門到踩坑(4)

文章目錄1. IDEA 顯示代碼空格配置2. IDEA 導入 gradle 項目依賴錯誤2.1 問題描述2.2 解決方法 1. IDEA 顯示代碼空格配置 IDEA 中編輯器的配置對代碼閱讀效率的提示是顯而易見的,比如顯示空白 和

原创 記人生第一次線上事故

第一次作爲開發 owner 主持迭代會議,整個過程戴着耳機,昏昏欲睡地聽同事一個接一個講自己的技術方案。疫情期間,技術評審以線上形式進行,三十平的會議室裏只有四個人,彼此隔開兩米以上,勉力維持不能再低的安全感。評審即將結束的時候,

原创 Linux 查看進程創建的線程

文章目錄前言1. ps 命令2. top 命令3. 查看系統文件 前言 檢查線上服務器狀態,有時會發現幾臺機器內存佔用很高。一般這種情況肯定是遠程登錄服務器,然後查看各個進程的內存佔用。當發現某個進程佔用的內存過高時,首要的檢查點

原创 Java 值傳遞與"引用傳遞"

文章目錄1. Java 的值傳遞2. Java 的"引用傳遞"結語 1. Java 的值傳遞 通常認爲Java 方法傳參數都是值傳遞,關於值傳遞的定義如下: 在方法被調用時,實參通過形參把它的內容副本傳入方法內部,此時形參接收到

原创 Java 對象鎖 Monitor 的實現

文章目錄1. Java 中的 Monitor2. Monitor 實現鎖分配2.1 Monitor 的結構2.2 獲取鎖流程2.3 釋放鎖流程 1. Java 中的 Monitor Java synchronized 關鍵字 中介

原创 Java IO 模型及示例

文章目錄重要概念同步和異步阻塞和非阻塞1. BIO(同步阻塞IO)1.1 BIO 的處理流程1.2 使用示例1.2.1 客戶端1.2.2 服務端1.2.3 測試類2. NIO(同步非阻塞IO)2.1 NIO 的處理流程2.2 使用

原创 Linux 查看進程內存分佈

文章目錄1. pmap 命令1.1 使用方式1.2 示例2. gdb 調試工具 1. pmap 命令 pmap 命令可以查看進程的內存映像信息,其輸出內容來自於/proc/<pid>/maps和/proc/<pid>/smaps這

原创 Spring AOP 切入點表達式的使用

文章目錄1. 切入點的標識符2. 常用切入點表達式詳解2.1 execution2.2 target2.3 @args2.4 @annotation 1. 切入點的標識符 Spring AOP 中目前只有執行方法這一個連接點,

原创 Java 8 Stream(2)-原理解析

文章目錄1. Strem 組件結構1.1 操作分類1.2 操作對象的結構1.2.1 流中間操作鏈表頭對象 Head1.2.2 流中間操作的其他對象1.2.3 數據處理邏輯的封裝對象 Sink2. Stream 實現原理2.1 Sp

原创 JVM 命令指北(6)-jcmd 命令

文章目錄1. 功能介紹2. jcmd 命令詳解2.1 命令格式2.2 常用 command 參數詳解2.2.1 GC 前綴2.2.2 VM 前綴2.2.4 JFR 前綴3. 使用示例3.1 GC 相關命令3.2 VM 相關命令 1

原创 Spring 定時任務 @Scheduled 的使用

文章目錄1. 定時任務的使用1.1 使用示例1.2 注意事項2. Cron 表達式相關2.1 Cron 表達式格式2.2 特殊字符詳解2.3 常見例子 1. 定時任務的使用 1.1 使用示例 在啓動類上添加 @EnableS

原创 Java 8 時間處理的使用

文章目錄1. String 轉化時間1.1 直接解析1.2 自定義解析2. 時間轉化 String3. 時間戳轉化時間 1. String 轉化時間 默認情況下,Java日期是ISO8601格式,因此任何表示ISO8601格式的日