虚拟机执行过程的特点,虚拟机执行过程的特点的是

作者:高方托管网 2024-09-23 08:38:41 0

大家好,今天小编关注到一个比较有意思的话题,就是关于虚拟机执行过程的特点的问题,于是小编就整理了2个相关介绍虚拟机执行过程的特点的解答,让我们一起看看吧。

如何理解Java虚拟机栈?

其中,虚拟机栈是一个后入先出的栈。栈帧是保存在虚拟机栈中的,栈帧是用来存储数据和存储部分过程结果的数据结构,同时也被用来处理动态链接(Dynamic Linking)、方法返回值和异常分派(Dispatch Exception)。线程运行过程中,只有一个栈帧是处于活跃状态,称为“当前活跃栈帧”,当前活动栈帧始终是虚拟机栈的栈顶元素。

虚拟机执行过程的特点,虚拟机执行过程的特点的是


和程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期和线程相同,描述的是 Java 方法执行的内存模型。

Java 内存可以粗糙的区分为堆内存(Heap)和栈内存(Stack),其中栈就是现在说的虚拟机栈,或者说是虚拟机栈中局部变量表部分。 (实际上,Java虚拟机栈是由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法出口信息。)

局部变量表主要存放了编译器可知的各种数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它不同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或其他与此对象相关的位置)。

Java 虚拟机栈会出现两种异常:StackOverFlowError 和 OutOfMemoryError。

StackOverFlowError: 若Java虚拟机栈的内存大小不允许动态扩展,那么当线程请求栈的深度超过当前Java虚拟机栈的最大深度的时候,就抛出StackOverFlowError异常。

OutOfMemoryError: 若 Java 虚拟机栈的内存大小允许动态扩展,且当线程请求栈时内存用完了,无法再动态扩展了,此时抛出OutOfMemoryError异常。

Java 虚拟机栈也是线程私有的,每个线程都有各自的Java虚拟机栈,而且随着线程的创建而创建,随着线程的死亡而死亡。

理解虚拟机栈,应该先理解虚拟机的运行原理以及内存布局,这里简要说一下:虚拟机顾名思义就是仿照操作系统,在操作系统上运行的可以执行其他程序的虚拟平台。它从操作系统系统内存中占据一大块内存,然后将这一大块内存模拟操作系统内存布局,分成了Java堆内存,Java虚拟机栈,方法区,程序计数器,本地方法栈。有这几块,就可以编译和运行Java了。

那么Java虚拟机栈在其中有什么作用呢?我们知道,操作系统执行本地程序方法调用实际上是对方法中的局部变量,方法出入口信息在系统寄存器进行存取的过程,这种执行称作“面向寄存器”架构,而Java虚拟机执行Java方法也是如此的流程,但是Java虚拟机没有寄存器的概念,因此分出了Java虚拟机栈来模拟寄存器的作用,这称之为“面向栈”架构。

所以Java虚拟机栈的作用就是Java方法执行时创建一个栈帧,用于存储方法中的局部变量,操作数等信息,再利用栈的先入后出特性完成方法调用。

希望可以帮助理解。

什么是虚拟机?虚拟机一般用来做什么?

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

1.演示环境,可以安装各种演示环境,便于做各种例子

2.保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行

3.避免每次重新安装,银行等常用工具,不经常使用,而且要求保密比较好的,单独在一个环境下面运行

4.想测试一下不熟悉的应用,在虚拟机中随便安装和彻底删除

5.体验不同版本的操作系统,如Linux、Mac等。

1. 什么是虚拟机?

虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作,节约物力资源。

2. 为什么要用虚拟机

2.1 虚拟机的出现是随着PC机的硬件的提升,开发和测试环境的多样化等诉求而诞生的一种技术。

2.2 虚拟机一般是通过虚拟机软件来实现的,在虚拟机中我们可以模拟实现和真实的物理环境基本相似的环境。

3. 虚拟机有什么特点?

3.1 封装性:是封装好的一系列的文件。(备份)

3.2 隔离性:是指虚拟机和物理机、虚拟机和虚拟机之间是相互隔离的。

到此,以上就是小编对于虚拟机执行过程的特点的问题就介绍到这了,希望介绍关于虚拟机执行过程的特点的2点解答对大家有用。

相关推荐