JVM 是 Java 的精髓部分之一。
Java 最开始是怎么来的?其实是从 C++ 上过来的,所以 Java 上面很多的面向对象特性都有 C++ 的影子。
C/C++ 最受诟病的是什么,就是指针,经常性的内存溢出。Java 说,算了,我们做个东西没有指针吧,这样程序就不会因为内存溢出而挂起退出了。得到的是经常性的空对象异常。
C/C++ 不仅仅有个编译的过程,还有一个过程叫做连接,这个也是经常出问题的地方,经常连接不上去。
不同计算机体系结构也不一样,大学应该有一门课程叫做《计算机体系结构》,主要涉及到 CPU,内存,存储,以及对字符和数字的处理上。
Java 就说,那么这样的话连接也出问题,编译好的代码也没法用,那我就用个虚拟机,然后让这个虚拟机在所有计算机体系结构上跑吧。
这个就是 Java 虚拟机的由来,JVM 是 Java 中非常重要的概念,帮你屏蔽掉了 Java 针对硬件环境中的各种痛点和不适。