前言
为什么要学习JVM?为什么必须学习JVM
1.面试需要(大厂必考核的一项技能)
2.深入的理解Java这门语言。(万丈高楼地基最重要)
- 我们常用的布尔型 Boolean,我们都知道它有两个值,true 和 false。但你们知道其实在运行时,Java 虚拟机是没有布尔型 Boolean 这种类型的 Boolean 型在虚拟机中使用整型的 1 和 0 表示。
- 我们都知道类路径和类名唯一确定一个类,但事实上并不是这样。或者说,我们前面说的结论只是表面上的。如果深入到虚拟机层面来说,类加载器、类路径、类名才唯一决定一个类。也就是说,如果两个不同的类加载器它们加载同一个 class 类文件,那这两个类加载器加载的类就是不同的。
3.更好的解决线上排查问题(更好的解决生产线问题)
4.走向高级程序员和架构师的必经之路
学习JVM的好处
1、能够明白为什么Java最早期被称为解释型语言,而后来为什么又被大家叫做解释与编译并存的语言(了解JVM中解释器以及即时编译器就可以回答这个问题);
2、你能够理解动态编译与静态编译的区别,以及动态编译相对于静态编译到底有什么好处(JVM JIT);
3、能够利用一些工具,jmap, jvisualvm, jstat, jconsole等工具可以辅助你观察Java应用在运行时堆的布局情况,由此你可以通过调整JVM相关参数提高Java应用的性能;
4、可以清楚知道Java程序是如何执行的;
5、可以明白为什么Java等高级语言具有可移植性强的特性。 其实这个问题相当于“为什么C/C++程序员需要学体系结构与编译原理?“
6、能够知道你的头发是怎么没有的
对于大多数Java工程师来说JVM也几乎成了面试必问的一个技术方向,比如什么JVM的内存模型,垃圾回收算法,生产环境遇到的JVM问题,各种参数的优化之类等。还有当系统出现莫名其妙的进程崩溃,异常描述为OOM内存溢出,又该如何解决?当系统出现频繁的FullGC,导致系统卡死,又该如何下手?
因此只有掌握JVM的一些底层原理,才能更好的对实际生产环境的一些问题有头绪和思路去分析和解决,当然光知道理论和原理也是不行的,还得结合一些实际开发场景来进行训练和实战才能融会贯通!(摒弃纯概念性讲解,结合大量的生产环境案例来进行讲解)
本教程会一步一步深入讲解JVM底层原理,以及结合对应实际开发案例进行配套学习,助你打通JVM奇经八脉,走向职场巅峰(教程特点:一步一图,通俗易懂)
Let‘s learning........Come on!