JVM虚拟机

JVM虚拟机,第1张

1、虚拟机(Virtual Machine)概念:
     就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。
大体上虚拟机可以分为系统虚拟机和程序虚拟。

 系统虚拟机(Visual Box, VMware),他们完全是对物理计算机的仿真,提供了
一个可运行完整 *** 作系统的软件平台。
程序虚拟机(java虚拟机),它专门为执行单个计算机程序而设计,在java虚拟
机中执行的指令称之为java字节码指令。(JVM层)
无论是系统虚拟机还是程序虚拟机,在上面运行的软件都被限制于虚拟机提供的
资源中

2、java虚拟机概念:
     是一台执行java字节码的虚拟机,它拥有独立的运行机制其运行的java字节码
也必须有java语言编译而成。jvm包含一套字节码指令集,一组寄存器,一个栈,
一个垃圾回收堆和一个存储方法域。
JVM平台的各种语言可以共享java虚拟机带来的跨平台性、优秀的垃圾货收器,
以及可靠的及时编译器。

3、java虚拟机的作用
     java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,
解释/编译为对应平台上的机器指令执行。每一条java指令,java虚拟机规范中都
有详细的定义,如怎么取 *** 作数怎么处理 *** 作数,处理结果放在哪。
特点:一次编译,到处运行。自动内存管理。自动垃圾回收功能

4、JVM运行时数据区:

     JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区
域【JAVA 堆、方法区】、直接内存。

5、JVM的整体结构:

6、java代码的执行流程:
     ① Java 源文件—->编译器—->字节码文件
     ② 字节码文件—->JVM(解释器)—->机器码

 每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什
么能够跨平台的原因了 ,当一个程序从开始运行,这时虚拟机就开始实例化了,
多个程序启动就会存在多个虚拟机实例。程序退出或者关闭,则虚拟机实例消亡,
多个虚拟机实例之间数据不能共享

7、指令集架构:
     常见的指令集架构有两种一种是基于寄存器的指令集架构,一种是基于栈的指令集
架构。JVM采用的是后者。
     1、可以执行比较,基于栈式架构不需要硬件支持,可以实现跨平台;
基于寄存器架构则完全依赖硬件,可以执行差
     2、设计上比较,基于栈式架构使用零地址指令方式分配(没有地址,只
有 *** 作数,其执行过程依赖于 *** 作栈)避开了寄存器的分配难题,设计和实
现更简单,适用于资源受限的系统(机顶盒,打印机等嵌入式设备);而基于
寄存器架构的指令集往往使用一地址、二地址、三地址指令为主。
     3、速度上比较,基于栈式架构的指令集在内存中 *** 作;二基于寄存器架
构的指令集直接由cpu执行,速度更快。
     4、指令集数量比较,完成相同的 *** 作,基于栈式架构比基于寄存器架构
的指令集数量要多,但是指令小,编译器实现容易。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/796518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存