JAVA基础-JVM的介绍

1.名词介绍

JVM是是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
引入java虚拟机后,java语言可以再不同平台上运行不需要重新编译。java语言使用java虚拟机屏蔽了与具体相关的信息,使得Java语言编译程序只需生成在java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改的运行。

2.概述

java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。
Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。
Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。

3.java代码执行过程

java中vm怎么导入文件 java vm_java中vm怎么导入文件

4.JVM内存模型

java中vm怎么导入文件 java vm_Java_02


1.栈:存放一个个的栈帧,每个栈帧对应一个被调用的方法,每个栈帧中存储有(局部变量表、操作数栈、指向运行时常量池的引用、方法返回地址、附加信息),先进后出

2.堆:用来存储对象本身的以及数组(数组的引用村方法java栈中),堆被所有线程共享的,在jvm中只有一个堆。

3.本地方法栈:和栈作用和原理相似。区别是java栈是为执行java方法服务的,本地方法栈是为本地java方法服务的

4.程序计数器(PC寄存器):程序计数器是用于存放下一条指令所在单元的地址的地方。

5.方法区:与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。