原创 MySQL8.0關係數據庫基礎教程(三)-select語句詳解 1 查詢指定字段 2 查詢全部字段 3 多字段查詢 4 別名(Alias) 5 註釋 6 無表查詢 7 總結

1 查詢指定字段 在 employee 表找出所有員工的姓名、性別和電子郵箱。 SELECT 表示查詢,隨後列出需要返回的字段,字段間逗號分隔 FROM 表示要從哪個表中進行查詢 分號爲語句結束符 這種查詢表中指定字段的操作

原创 AtomicInteger 核心源碼解析 前言 繼承關係 屬性 構造方法 API 源碼 總結

原子類使用 CAS 替代鎖,實現基本類似,我們本文以 AtomicInteger 爲例來研究其究竟是如何實現無鎖同步的. 前言 一個可以自動更新的int值。 AtomicInteger用於原子遞增計數器之類的應用程序,並且不能用作Integ

原创 JDK源碼解析實戰 - CountDownLatch 1 基本設計 2 類架構 3 await 4 countDown 總結

1 基本設計 一種同步輔助,允許一個或多個線程等待,直到在其他線程中執行的一組操作完成。 CountDownLatch 是用給定的 count 初始化的。由於調用了countDown()方法,await 方法阻塞,直到當前計數爲零,之後釋放

原创 Jprofile解析dump文件使用詳解 1 Jprofile簡介 2 功能簡介 3 dump 文件分析 4 模塊功能點詳解 參考

1 Jprofile簡介 官網 下載對應的系統版本即可 性能查看工具JProfiler,可用於查看java執行效率,查看線程狀態,查看內存佔用與內存對象,還可以分析dump日誌. 2 功能簡介 選擇attach to

原创 ConcurrentHashMap 核心源碼解析 0 前言 1 繼承體系 2 屬性 3 構造方法 4 put 5 transfer - 擴容 6 總結

人只應當忘卻自己而愛別人,這樣人才能安靜、幸福高尚。 ——托爾斯泰《安娜•卡列尼娜》 0 前言 線程安全的 Map - ConcurrentHashMap,讓我們一起研究和 HashMap 相比有何差異,爲何能保證線程安全呢. 1

原创 ReentrantLock 核心源碼解析 1 基本設計 2 類架構 3 構造方法 4 Sync 同步器 5 nonfairTryAcquire 6 tryLock 7 tryRelease 8 總結

學習完 AQS,本文我們就來研究第一個 AQS 的實現類:ReentrantLock。 1 基本設計 ReentrantLock 可重入鎖,可重入表示同一個線程可以對同一個共享資源重複的加鎖或釋放鎖。 具有與使用 synchronized

原创 深入理解Java虛擬機(JVM) --- 垃圾收集算法(中)

2 回收無效對象的過程 當經可達性算法篩選出失效的對象之後,並不是立即清除,而是再給對象一次重生的機會 判斷是否覆蓋finalize() 未覆蓋該或已調用過該方法,直接釋放對象內存 已覆蓋該方法且還未被執行,則將finalize()扔到F

原创 深入解析JVM源碼 - 創建HotSpot

1 程序主入口 src/java.base/share/native/launcher/main.c main函數返回了JLI_Launch()函數,位於src/java.base/share/native/libjli/java.c 2

原创 Spring Cloud Alibaba 實戰(六) - 聲明式HTTP客戶端-Feign

本章學習Feign,包括Feign的自定義配置,實現文件上傳,進一步實現代碼的重用,Feign性能優化,Feign與RestTemplate的對比與選擇. 1 使用Feign實現遠程HTTP調用 Feign是Netflix開源的聲明式HTT

原创 RocketMQ實戰(一) - 簡介

1 RocketMQ是什麼 RocketMQ是由阿里捐贈給Apache的一款分佈式、隊列模型的開源消息中間件,經歷了淘寶雙十一的洗禮。 官網 2 RocketMQ的發展史 2017開始發佈即最新4.0.0版本 3 RocketMQ的

原创 Elasticsearch 實戰(一) - 簡介

官腔 Elasticsearch,分佈式,高性能,高可用,可伸縮的搜索和分析系統 基本等於沒說,咱們慢慢看 1 概述 百度:我們比如說想找尋任何的信息的時候,就會上百度去搜索一下,比如說找一部自己喜歡的電影,或者說找一本喜歡的書,或者找一條

原创 重學計算機組成原理(十二) - 異常和中斷

1 概覽 完好的程序都滿足以下特徵 自動運行 我們的程序和指令都是一條條順序執行,不需要通過鍵盤或者網絡給這個程序任何輸入 正常運行 沒有遇到計算溢出之類的程序錯誤。 不過,現實的軟件世界可沒有這麼簡單 程序不僅是簡單的執行指令,更多的還

原创 Spring Cloud 微服務實戰(三) - 服務註冊與發現

訂單服務源碼 https://github.com/Wasabi1234... 商品服務源碼 https://github.com/Wasabi1234... 0 分佈式下服務註冊的地位和原理 0.1 分佈式系統中爲什麼需要服務發現 A 類

原创 優雅地在Mac OS Catalina下 編譯 Open JDK 13

1 系統環境 XcodeOracle JDK: 13 先確保系統已安裝freetype和ccache freetype: 2.9 ccache: 3.3.5 $ brew install freetype ccache 2 下載源碼

原创 Docker容器實戰(七) - 容器中進程視野下的文件系統

前兩文中,講了Linux容器最基礎的兩種技術 Namespace 作用是“隔離”,它讓應用進程只能看到該Namespace內的“世界” Cgroups 作用是“限制”,它給這個“世界”圍上了一圈看不見的牆 這麼一搞,進程就真的被“裝”在了一