深入了解JVM01.JVM简介

5 篇文章 0 订阅

虚拟机

虚拟机就是一台虚拟的计算机。

它是一款软件,用来执行一系列虚拟计算机指令。

大体上,虚拟机可以分为系统虚拟机和程序虚拟机

JVM

JVM是Java Virtual Machine,也就是Java虚拟机;

程序虚拟机典型的代表就是JVM,它专门为执行某个单个计算机程序而设计。

在 java 虚拟机中执行的指令我们称为 java 字节码指令。

JVM是一种执行 java 字节码文件的虚拟计算机,它拥有独立的运行机制。

Java 技术的核心就是JVM,因为所有的 java 程序都运行在JVM内部。

JVM就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器码指令执行,这也是java语言是跨平台的原因;

JVM特点

1.一次编译,到处运行;

2.自动垃圾回收;

3.自动的垃圾回收;

JVM是一座桥梁,连接编译后的字节码指令与操作系统;

JVM组成

其由四部分组成:
1.类加载器(ClassLoader)
2.运行时数据区(Runtime Data Area)
3.执行引擎(Execution Engine)
4.本地库接口(Native Interface)
在这里插入图片描述在执行程序时,首先需要将.java文件编译为.class文件,编译后的.class文件,即字节码文件通过类加载器(Class Loader) 加载到运行时数据区(Runtime Data Area),字节码文件是 jvm 的一套指令集规范,不能直接交给操作系统执行,而是需要交给执行引擎(Execution Engine),调用本地方法接口(Native Interface),翻译为操作系统指令,再交由CPU执行;

JVM的构架

其字节码指令流是一种基于栈的指令集结构:

1.设计和实现更简单,适用于资源受限的系统.
2.使用零地址指令方式分配,其执行过程依赖于操作栈,指令集更小,编译器容易实现.
3.不需要硬件支持,可移植性好,更好实现跨平台.

(零地址指令是机器指令的一种,是指令系统中的一种不设地址字段的指令,只有操作码,没有操作数。这种指令有两种情况:一是无需操作数,另一种是操作数为默认的(隐含的),默认为操作数在寄存器中,指令可直接访问寄存器。)

另一种结构为基于寄存器式架构的:

1.指令完全依赖于硬件,可移植性差.
2.性能优秀,执行更高效.
3.完成一项操作使用的指令更少。

由于跨平台的设计,Java 指令集都是根据栈来设计的,不同 CPU 架构不同, 所以不能设计为基于寄存器的.

优点是跨平台,指令集小,编译器容易实现.

缺点是性能下降,实现同样功能需要更多的指令.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值