什么是Java虚拟机?
作为程序员,大家都知道写的代码都是在Java虚拟机上运行的,但大家是否知道,Java虚拟机又是什么呢?
先看看网上搜到有关JAVA虚拟机的介绍 :
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Jvm虚拟机的意义
学习JVM运行机制,让我们更加了解Java的生态,再针对JAVA开发过程中,碰到的并发、多线程、异步处理时,能更加得心应手。
Jvm一次编译,处处执行
Jvm虚拟机是运行在操作系统之中的,那么什么东西才能在操作系统中运行呢?当然是进程,因为进程是操作系统中的执行单位。当它在运行的时候,它就是一个操作系统中的进程实例,当它没有在运行时(作为可执行文件存放于文件系统中),可以把它叫做程序。
JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
JDK、JRE
JRE:Java RunTime Environment,字如其名,java运行时环境,它主要包含了JVM,java基础类库.是是使用java语言编写的程序运行所需要的软件环境,提供给想要运行java程序的用户.
JDK:Java Development Kit,java开发工具包,java程序员编写java程序时需要的开发工具包.JDK中包含了JRE,以及包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
JVM大致流程如下图:
![](https://img2018.cnblogs.com/blog/1529499/201811/1529499-20181108220803548-1124832068.png)