虚拟机
虚拟机就是一台虚拟的计算机,是一款软件,用来执行一系列虚拟计算机指令.可以分为系统虚拟机和程序虚拟机.
Java虚拟机就是一种执行Java字节码文件的虚拟计算机,它拥有独立的运行机制.
Java技术的核心就是Java虚拟机,所有的java程序都运行在java虚拟机内部.
JVM的作用
java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释或编译为对应平台上的机器码指令执行,每一条java指令,java虚拟机中都有详细定义,如怎么处理操作数,处理结果放在那.
特点
一次编译到处运行.
自动内存管理
自动垃圾回收功能
当下的JVM不仅课可以执行Java字节码文件.还可以执行其他语言编译后的字节码文件,是一个跨语言平台.
JVM的位置
JVM是运行在操作系统之上的,它与硬件没有直接的交互.
JVM整体可以分为四个部分
1.类加载器
负责从硬盘上加载字节码文件.
2.运行时数据区
存储运行时数据,方法区,堆,栈,本地方法,程序技术器
3.执行引擎
负责将字节码解释\编译成真正的机器码.
4.本地方法接口
负责调用操作系统本地方法.
程序在执行之前先要把Java代码转换为字节码(Class文件),JVM首先需要把字节码通过一定的方式,类加载器(ClassLoader)把文件加载到内存中的运行时数据区(Runtime Data Area)但是字节码是JVM的一套指令集规范,底层操作系统并不可以直接执行,而是需要经过特定的命令解析器执行引擎(Execution Engine)将字节码翻译为底层系统指令在由CPU去执行.而在这一系列过程中需要调用其他语言的接口本地库接口(Native Interface)来实现整个程序的功能. 而我们通常指的JVM组成指的是运行时数据区(Runtime Data Area)程序员通常调试分析的区域就是"运行时数据区"中的Heap(堆模块).