如果是零基础,显然还是不太可能的事。但是还是有机会的,通过厚积薄发,往后的日子提提速。
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高并发实战》
学习,要学会归类总结,形成属于自己的知识体系。