打算寫一些Netty的文章了,先聊聊爲何要學習Netty

微信搜索【阿丸筆記】,關注Java/MySQL/中間件各系列原創實戰筆記,乾貨滿滿。git

2021年了,終於開始系統性總結Netty相關的東西了。github

打算寫一些Netty的文章了,先聊聊爲何要學習Netty

 

這會是Netty系列的第一篇,我想先聊聊 「爲何要學習Netty」。面試

  • 繞不開的編程框架
  • Java進階之梯
  • 面試「絕招」
  • 一個小小的心結

1.繞不開的框架

說到Netty,相信全部作Java後端開發的同窗都應該據說過。
這是一個再經典不過、且仍然被普遍使用的網絡編程框架。
就我接觸過並看過源碼的開源項目,能夠說基本上都是使用Netty做爲網絡通訊的底層框架,包括Dubbo、RocketMQ、Canal、otter、HBase等等。編程

因此,我始終認爲,學習Java,Netty是一個繞不開的框架。後端

能完全掌握一個如此必不可少的底層框架,是很是有必要的。設計模式

2.Java進階之梯

一個應用如此普遍的東西,並不意味着簡單。微信

不少同窗可能知道Netty,甚至使用過Netty,可是若是要深刻探討技術細節,或者借鑑Netty來優化本身的項目,可能就會力不從心了。
Netty做爲一個衆所周知的高性能網絡編程框架,有太多值得咱們學習的技術細節和核心原理。
包括但不限於:網絡

  • 網絡IO模型
  • 多線程模型
  • 內存管理
  • 高性能數據結構
  • 設計模式

若是能將Netty中的這些技術細節完全掌握,那麼咱們對於網絡編程、操做系統、Java編程語言的理解,都將邁上一個全新的臺階。數據結構

3.面試「絕招」

除了提高技術水平以外,另外一個你們比較重視的就是面試了。多線程

對於中高級的後端開發面試中,Netty相關的知識點也是面試中絕對的高頻試題。
隨便舉幾個例子,相信你們都曾經碰到過:

  • Netty的粘包/拆包是怎麼處理的,有哪些實現?
  • 同步與異步、阻塞與非阻塞的區別?
  • BIO、NIO、AIO分別是什麼?
  • select、poll、epoll的機制及其區別?

因此,深刻學習Netty,也是跳槽面試、升職加薪的必備「絕招」。

4.一個小小的心結

剛剛工做的時候,咱們組有個技術大佬,很是很是強。基本上公司出現任何線上問題,沒有他解決不了的。
我有幸一畢業就在他的指導下進行工做,教會了我不少技術知識和技術成長路線。
我記得他當時跟我說過,

若是有時間,必定要系統性地學習Netty。若是沒有掌握Netty的核心原理,那麼永遠都是Java的初學者。

工做了幾年,我內心仍然念念不忘這句話。
雖然零零散散也看過很多Netty的相關原理與技術博客,可是總歸是淺嘗輒止。
2021年了,給本身定個小目標,必定要 系統地、深刻地、有實踐地 掌握Netty,修煉好「內功」。


若是你也有興趣,歡迎跟着我一塊兒看一看、練一練吧。

我會盡可能結合源碼與實戰案例來剖析Netty 的核心技術原理,能在工做中有所輸出,避免踩坑。

同時,也會結合高頻面試題,將回答要點精煉出來。

 

都看到最後了,原創不易,點個關注,點個贊吧~
文章持續更新,能夠微信搜索「阿丸筆記 」第一時間閱讀,回覆【筆記】獲取Canal、MySQL、HBase、JAVA實戰筆記,回覆【資料】獲取一線大廠面試資料。
知識碎片從新梳理,構建Java知識圖譜: github.com/saigu/JavaK…(歷史文章查閱很是方便)
相關文章
相關標籤/搜索