1.JVM虚拟机的作用
java源文件通过编译器被编译成.class文件,这个.class文件又被JVM中的解释器编译成机器码
不同操作系统(Linux,Windows,Mac)的解释器将.class文件编译成在不同操作系统上的机器码,这就是Java能够跨平台的原因
2.JVM由哪些组成:
一套字节码指令集+一组寄存器+一个栈+一个堆+一个方法区+一个垃圾回收器
另一种说法是:
Java虚拟机包括:
(1)一个类加载器子系统:负责将.class文件加载到JVM中
(2) 运行时数据区:存储JVM运行过程中产生的数据
(3) 执行引擎:包括即使编译器(用于将字节码编译成机器码)和垃圾回收器(回收运行过程中不再使用的对象)
(4)本地接口库(Native Interface Library)。本地接口库通过调用本地方法库(Native Method Library)与操作系统交互
注意:运行时数据区中,程序计数器,虚拟机栈,本地方法区是线程私有的区域
堆和方法区是线程共享区域
JVM中的每个线程和操作系统的本地线程直接映射