原创 Redis 源碼簡潔剖析 02 - SDS 字符串

C 語言的字符串函數 C 語言 string 函數,在 C 語言中可以使用 char* 字符數組實現字符串,C 語言標準庫 string.h 中也定義了多種字符串操作函數。 字符串使用廣泛,需要滿足: 高效的字符串操作,比如追加、拷貝、比

原创 Redis 源碼簡潔剖析 01 - 環境配置

fork Redis 源碼 在 GitHub 上找到並 fork Redis 源碼 https://github.com/redis/redis,然後在本地 clone 自己 fork 出來的源碼項目。這樣更方便我們在學習源碼的過程中,增加

原创 Java Lambda 表達式源碼分析

基本概念 Lambda 表達式 函數式接口 方法引用 深入實現原理 字節碼 爲什麼不使用匿名內部類? invokedynamic 總結 參考鏈接 GitHub 項目 Lambda 表達式是什麼?JVM 內部究竟是如何實現 L

原创 RPC 實戰與原理 精簡版

什麼是 RPC? RPC 有什麼作用? RPC 步驟 爲什麼需要序列化? 零拷貝 什麼是零拷貝? 爲什麼需要零拷貝? 如何實現零拷貝? Netty 的零拷貝有何不同? 動態代理實現 HTTP/2 特性 爲什麼需要服務發現? 爲什麼

原创 Java Stream 源碼分析

前言 操作分類 源碼結構 BaseStream Stream ReferencePipeline Sink 操作疊加 加載數據源 中間操作 終結操作 並行處理 並行錯誤的使用方法 並行正確的使用方法 性能 測試方法和測

原创 雲原生時代,Java的危與機(周志明)

說明 本篇文章是轉載自周志明老師的文章,鏈接地址:https://www.infoq.cn/article/RQfWw2R2ZpYQiOlc1WBE 今天,25 歲的 Java 仍然是最具有統治力的編程語言,長期佔據編程語言排行榜的首位,

原创 30分鐘帶你瞭解「消息中間件」Kafka、RocketMQ

消息中間件的應用場景 主流 MQ 框架及對比 說明 Kafka 優點 Kafka 缺點 RocketMQ Pulsar 發展趨勢 各公司發展 Kafka Kafka 是什麼? Kafka 術語 Kafka 如何持久化? Kafka

原创 30分鐘帶你理解 Raft 算法

爲什麼需要 Raft? Raft 是什麼? Raft 的目標 前置條件:複製狀態機 Raft 基礎 Leader 選舉(選舉安全特性) 日誌複製(Leader只附加、日誌匹配) 安全 學習資料 使用 Raft 的應用? 擴展:ZooKee

原创 思維導圖學《Java性能權威指南》

目錄 性能測試 Java 性能調優工具箱 JIT 編譯器 垃圾收集 原生內存 線程與同步的性能 Java API 技巧 GitHub LeetCode 項目 目錄 YANO SPACE 2021 計劃 豆瓣-Java 性能權威指南 性

原创 印象筆記吐槽

前言 廣告 電腦廣告 手機廣告 筆記編輯 超級筆記-無法搜索代碼 超級筆記-編程語言支持 超級筆記-圖片不同步,且無提示 MarkDown 各種收費項目 會員權益 資源包、字體包 其他 頂部自定義工具欄無效 雙擊頂部不

原创 JVM G1GC的算法與實現

G1GC 是什麼? 一些基本概念 實時性 G1GC 有什麼特點? G1GC 的堆結構是什麼樣的? G1GC 的執行過程是什麼樣的? 併發標記 併發標記是什麼 標記位圖 執行步驟 步驟 1——初始標記階段 步驟 2——併發標記階段

原创 通過 Netty、ZooKeeper 手擼一個 RPC 服務

說明 項目鏈接 微服務框架都包括什麼? 如何實現 RPC 遠程調用? 開源 RPC 框架 限定語言 跨語言 RPC 框架 本地 Docker 搭建 ZooKeeper 下載鏡像 啓動容器 查看容器日誌 RPC 接口 Ne

原创 Spring Native 項目,把 Spring 項目編譯成原生程序!

Spring Native 是什麼 優點 缺點 原生鏡像(native image)和常規 JVM 程序的區別 前置條件:GraalVM 支持的語言 關鍵特性 GraalVM 下的 Java 微服務 Spring Native

原创 對 Kotlin 與 Java 編程語言的思考

近期學習了下 Kotlin,不得不說 Kotlin 比 Java 簡潔不少,個人感覺代碼量能減少 50%。到現在已經使用Java語言做服務端開發兩年半的時間了,對Java某些囉嗦的語法也是有很多想法。這篇文章談談我對Kotlin和Java的

原创 2018-11-04 工作感悟

番茄工作法 & TODO LIST領導希望員工能夠在工作中投入更多的時間,甚至晚上11點下班的員工纔是好員工。但是我覺得一個人能夠有高效的4個小時產出時間就不錯了。工作應當以結果爲導向,不應該以工作時間爲判斷標準。我現在經常以「番茄工作法」