原创 Netty源碼分析系列之服務端Channel初始化

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析和Java併發編程文章。 問題 老規矩,Netty的源碼很難、很複雜,爲了更快的學懂新的知識,所以還是帶着問題來學習源碼。 Nett

原创 JVM系列之STW、並行與併發、安全點與安全區域

封面前言在平時實際工作中,其實接觸 JVM 的機會比較少,而學習 JVM 時,大部分時候也是看書或者網上看博客教程,然而在學習過程中,經常會碰到很多陌生的名詞,難以理解,尤其是在垃圾回收器中,因此本文找了幾個和垃圾回收器相關知識中聯繫比

原创 面試官:爲什麼《阿里巴巴Java開發手冊》中強制要求主鍵id是自增的?

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析、Java併發編程、Netty源碼系列和MySQL工作原理文章。 前言 在《阿里巴巴 Java 開發手冊》第五章 MySQL 規定第

原创 MySQL爲什麼不用數組、哈希表、二叉樹等數據結構作爲索引呢

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析、Java併發編程和Netty源碼系列文章。 前言 在上一篇博客中詳細說明了 MySQL 的索引使用的是 B+Tree 這種數據結構

原创 MySQL索引的工作原理

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析、Java併發編程、Netty源碼系列和MySQL工作原理文章。 索引是一種加快查詢的數據結構,在 MySQL 中,索引的數據結構選

原创 如何解決八皇后問題

問題 八皇后問題指的是在 8*8 的棋盤上,放入 8 個皇后,並且保證在每一行、每一列、以及對角線上都不會同時出現兩個皇后(國際象棋的規則裏面,皇后的攻擊範圍是其所在的橫豎兩條線以及所在的兩條對角線),那麼該如何擺放這 8 個皇后

原创 redo log —— MySQL宕機時數據不丟失的原理

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析、Java併發編程和Netty源碼系列文章。 問題 在開始閱讀本文之前,可以先思考一下下面兩個問題。 衆所周知,MySQL 有四大

原创 索引數據結構之B-Tree與B+Tree(下篇)

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析、Java併發編程和Netty源碼系列文章。 前言 接上篇博客《索引數據結構之 B-Tree 與 B+Tree(上篇)》,本文將簡單

原创 索引數據結構之B-Tree與B+Tree(上篇)

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析、Java併發編程和Netty源碼系列文章。 樹 樹是一種十分常見的數據結構,根據子結點的個數,我們可以將樹分爲二叉樹和多叉樹。每個

原创 Netty源碼分析系列之新連接的接入

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析和Java併發編程文章。 1.問題 當 netty 的服務端啓動以後,就可以開始接收客戶端的連接了。那麼在 netty 中,服務端是

原创 阻塞隊列LinkedBlockingQueue實現原理

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析和Java併發編程文章。 簡介 在JUC包下提供了很多線程安全的隊列,通常稱之爲阻塞隊列。這些阻塞隊列在線程池中的應用十分廣泛,

原创 Netty源碼分析系列之NioEventLoop的執行流程

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析和Java併發編程文章。 1.前言 在上一篇文章中分析了NioEventLoop的創建以及啓動過程的源碼,在文章結尾處提到,當Nio

原创 Netty源碼分析系列之服務端Channel的端口綁定

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析和Java併發編程文章。 微信公衆號 問題 本文內容是接着前兩篇文章寫的,有興趣的朋友可以先去閱讀下兩篇文章: Netty 源碼分析系列之服

原创 Netty源碼分析系列之TCP粘包、半包問題以及Netty是如何解決的

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析和Java併發編程文章。 問題 在上一篇文章中分析到了 Netty 服務端是如何進行新連接的接入的,那麼當新連接接入後,就可以開始數

原创 Netty源碼分析系列之writeAndFlush()上

掃描下方二維碼或者微信搜索公衆號菜鳥飛呀飛,即可關注微信公衆號,閱讀更多Spring源碼分析和Java併發編程文章。 前言 前兩篇文章中分析了 netty 中解碼器相關的源碼,解碼過程是發生在讀數據這一步的,那麼讀到數據,經