如果是零基礎,顯然還是不太可能的事。但是還是有機會的,通過厚積薄發,往後的日子提提速。
1.“放大話”
這裏介紹一下NIO簡陋的知識體系,之後會形成一個大的思維導圖,包括Netty等…(自己也樂呵呵的期待一下)
2.學習java.nio.*的建議
學Netty前,還是挺有必要先把 Java的 java.nio.*
包過一遍,瞭解一下Java的NIO是如何運作。
2.1 netty 與 java.nio.*
Netty確實很精緻。
這裏做一個比喻,例如Netty的精緻,就類似是Java的內存管理,提供了一套無敵的JVM,省事省心。
而java自帶的nio類似C++,幾乎所有操作系統的內存操作都要自己搭一遍。
不過也挺好,畢竟學一遍 java.nio.*
能夠對socket在NIO的事件處理有比較深刻的理解(畢竟踩坑多了就醒悟了)。這也是我推薦要好好學一下 java.nio.*
的原因。
2.2 實戰建議
建議在學之前,也動手搗鼓一下java.nio.*
的API,實現一些有趣的場景,例如fileChannel實現文件傳輸,使用socketChannel實現socket點對點之間的文件傳輸,或者是簡單的聊天室,這些都是最基本的socket、io處理。
PS:這裏的思維導圖參考了一些資源:《Netty、Redis、Zookeeper高併發實戰》
學習,要學會歸類總結,形成屬於自己的知識體系。