securityCoding
2021-03-13 10:34:34 +08:00
1. 系统性的学习数据结构与算法。这个非常非常重要,不然很多源码根本看不懂,这是搞懂很多高级组件的前置条件。比如:ArrayList/LinkedList/HashMap/AQS/epoll 不懂数据结构和算法基本上是看了也白看,看也看不懂
2. java 底层知识 jvm 。比如 java 内存模型,jvm 运行时数据区, 有 jvm 相关的知识储备你才能看明白。像 volatile 为什么能保证内存可见性不懂内存模型是真的很难理解这玩意。还有垃圾回收,gcroot 等等
3.计算机体系,这块的东西很多很杂,老实说这块知识我也非常碎片化。比如你说你要学习 netty,你得把 bio 、nio 、selector ( select,poll,epoll )这几个 io 模型演进过程搞清楚吧?上来就 nio+多路复用容易把人搞懵逼
对于学习我自己一般遵循:
1.背景。前因后果搞不清很多概念会显得很突兀难以理解
2.怎么用。计算机领域不缺高级词汇,不要停留在纸面上,结合实际好好理解和运用。
3.总结。不写总结根本不明白自己到底搞懂了没有,总结就是考试,你说你学的非常好了,来,我们来考试一下