JVM使得Java可以跨平台运行,其隐藏了计算机硬件和操作系统的复杂性,使开发人员只面对单一的支持Java的计算机。
当开发人员写好Java源程序后,使用编译器将源代码转换成JVM的指令序列(字节码),保存为.class文件。执行Java程序时,JVM负责解释字节码,JVM的指令转换成真实的机器指令并执行。
JVM由以下几部分组成:
(1)指令集:支持大约248个字节码,每个字节码执行一种基本的CPU运算,Java指令集相当于Java程序的汇编语言。
(2)寄存器:用于保存机器的运行状态,与微处理器中的某些专用寄存器类似。
(3)栈:分为三个区域,即局部变量区、运行环境区和操作数区。
(4)垃圾收集堆:是一个运行时数据区,类的实例从中分配空间。Java语言具有无用单元收集能力,它不给程序员显式释放对象的能力。Java不规定具体使用的无用单元收集算法,可以根据系统的需求使用各种各样的算法。
(5)类文件格式。
(6)存储区。
考点一:程序能够使用System.gc()等方法建议收集器立即进行收集,但无法强制执行手机操作,而且自动垃圾收集并不会每次都组织内存溢出,垃圾收集器不是平台独立的。
考点二:GC是Gabage Collection的简写,表示垃圾收集器。使用GC,程序员不用担心内存管理,因为垃圾收集器会自动进行管理。一般情况下,Java会自动进行垃圾收集,如果需要手动请求垃圾收集,可以调用下面的方法之一:System.gc()或Runtime.getRuntime().gc()
考点三:JVM的定义以及组成部分。
考点四:JRE是Java Runtime Environment的简称,即Java运行时环境;
JDK是Java Development Kits的简称,即Java开发工具集
JVM是Java虚拟机。
三者间是包含与被包含的关系:JDK包含了JRE,JRE又包含了JVM。