最近极客时间上线了一个专栏《深入拆解Java虚拟机》,导致不少人来问我,JVM是不是真的要学?面试官都会问JVM的问题吗?很重要吗?
的确很重要。
随着互联网的发展,高并发高可用、快速响应成为软件的必须,而JVM与这些有着密切关联。之前JVM系列好多都是一些由于STW影响到快速响应问题,忽然网站慢一下(抖动下)等问题,下面谈谈最近通过JVM排查到的高并发高可用问题。(在高可用高并发下面问题原因可能会很多,比如cpu异常高、磁盘IO高、SWAP空间等,有可能很多问题都是综合性的问题)。
而且我们在尽情享受Java虚拟机带来好处的同时,还应该去了解和思考“这些技术特性是如何实现的”,去了解最底层的原理。只有熟悉JVM,你才能在遇到OutOfMemory等异常时,不会束手无策,不会一脸懵逼的上网找解决办法,最后就算改了几个启动参数解决了问题,也还是云里雾里。
其实,“为什么学Java虚拟机”这个问题,就和“为什么要学习数据结构和算法”是一个道理:工欲善其事,必先利其器。可以说,Java虚拟机就是每一位Java工程师进阶加薪的利器,你想往上升,你想深入技术,不想一直停留在简单开发,或者你在做Java性能分析、调优工作时,那么,Java虚拟机绝对是一把助力的利剑。
面试风气
简单的问题都不好意思问,怕面试者鄙视面试公司问的问题。现在有一股妖风,不管啥公司都慢慢像阿里这样的公司靠近,面试不问点jvm、并发、分布式都不好意(虽然公司可能没有用到,虽然可能仅仅CURD),老是觉得问问这些显得