JVM是什么?能够做什么?为什么它重要?
JVM是JavaVirtualMachine(Java虚拟机)的简称,JVM是一个构建在实际操作系统之上的可运行的软件的标准规范,完整地定义了java程序如何运行的标准体系。
为了实现java的语言的跨平台的特性,JVM的规范中定义了内存管理,线程栈管理,PC寄存器管理,指令集,执行引擎等等一序列用于屏蔽真实操作系统及硬件差异的标准。
物理计算机是不会自己进行任何工作,一切的操作本质是都是程序代码告诉计算机如何进行工作的,这里的指令有来自硬件的,来自操作系统,来自应用程序等等;
应用程序就是用户和计算机交互的通道,用户点击鼠标,输入字符,触发事件,都是通过应用程序提供的接口,告诉计算机如何工作;
那么一个构建在JVM之上的应用程序,JVM就是应用程序和操作系统之间的通信通道,JVM将应用程序生成的指令转换成汇编指令发送给到操作系统,操作系统调用硬件的接口进行指令执行;
从这点上看,JVM就是做一个指令执行和翻译的软件;
它最关键的价值在于,制定了标准的规范,然后在不同的平台上实现这么一个JVM软件,保证java的程序都不同的平台上都能够运行;但是不能够保证每个程序在不同平台执行的过程,性能都是一致的;
所有基于JAVA语言开发的程序,如何没有JVM软件,那么JAVA就什么都不是了,它重要嘛?
在整个java的体系中,JVM是一切程序的基础,如果仅仅只是为了实现功能,那么JVM是如何工作的,它就真的不是那么重要。如果追求程序的性能,分析程序可能存在的问题,那么JVM就会成为必须学习和熟悉的知识了;
于是,我开始了JVM学习之路,记录这整个JVM学习过程中的笔记;因为对liunx,c,c++,硬件的不精通,所以学习路上感觉也是非常困难;
告诉自己,写代码的时候,想想JVM会如何运行,是否会存在问题,是否有更高效的运行方式,然后进行修改。这就是我学JVM的动力!