JVM学习总结
1、重框架
JVM这种底层语言要处理的问题也非常复杂,非常深,因此,JVM部分的知识,或者说面试点也是非常虚,非常杂的。任何一个细节知识点往下,都能够挖出无数多的问题。并且,由于JVM很难也没有必要去研究底层的源码,所以很多细节问题并不太好具体验证。
所以我建议大家对于JVM部分的问题,要重框架,而不要太注重细节。注重各个层面的逻辑自洽,而不要纠结于各个细节。与其花功夫研究茴香豆的茴字有几种写法,不如多花花功夫怎么写出一个自己的孔乙己。
2、形成习惯
JVM东西很多,所以要形成一个大的整体逻辑是不容易的。加上现在JDK各个新版本层出不穷,各种各样的新框架也在不断出现,所以,你的整体逻辑也要不断更新。但是,JVM这种底层知识又注定了你不太可能像Spring这样的应用框架,边用边熟悉。所以,这也主动了你不太可能每次都专门花上很长一段时间专门来学习或者复习JVM。而对于这种经常容易忘记的技术,最好的学习方式,就是形成思考习惯,收集更多零碎的时间,一点点思考积累。
这次课程中,我们从RocketMQ的角度梳理了一下JVM的一些应用场景。以后,你还会学更多的中间件,接触更多的实际项目,还要了解Jenkins,Docker,大数据等各种不同类型的Java项目部署运行环境。每接触一个新的环境,甚至以后每遇到一个新颖的JVM面试题,都不妨都像这样,顺便梳理一下他们的环境优化思路,补充自己不太熟悉的知识细节。
3、重表达
一个很现实的问题,对于JAVA程序员来说,JVM部分很多知识对于开发工作的直接帮助并不是很大。更大的作用,大概率会体现在以后面试或者处理一些稀奇古怪的问题的时候。而这个时候,大概率你需要的不只是自己明白问题,还要能够跟其他人表达清楚你的认识。但是,JVM这一部分的东西,非常凌乱,加上其中数不尽的细节问题,所以,我见过很多程序员对JVM这部分的东西,明明自己很清楚,但是跟别人说的时候就是表达不清楚。