虚拟机与Java虚拟机的介绍

虚拟机与Java虚拟机的介绍

虚拟机(virtual machine) : 就是一台虚拟的计算机, 它是一款软件, 用来执行一系列虚拟计算机指令, 大体上虚拟机可以分为系统虚拟机程序虚拟机

  • 著名的visual Box, VMware就属于系统虚拟机, 它们完全是对物理计算机的仿真, 提供了一个可运行完整操作系统的软件平台
    • 也就是系统虚拟机就是模拟了一个完整的计算机硬件(上面可以安装操作系统)
      • 我们一般如果是使用window系统的笔记本, 然后需要安装Linux系统并使用的时候就会有两中方式: 购买一个云服务器, 在云服务器上安装Linux系统或者在本机上安装一个系统虚拟机, 然后在系统虚拟机中安装Linux系统
        • 笔者之前在VMware中安装过Linux(CentOS8.0)系统并使用
          • CentOS8.0是Linux发行版之一
  • 程序虚拟机的典型代表就是Java虚拟机, 他专门为执行单个计算机程序而设计, 在Java虚拟机中执行的指令我们称之为: JVM字节码指令
    • 程序虚拟机也是模仿硬件, 只不过不是模拟的完整的计算机硬件, 而是模拟一个可以运行指定程序的计算机硬件组成

不管是系统虚拟机还是程序虚拟机, 作用都是执行一系列计算机指令

无论是系统虚拟机还是程序虚拟机, 在上面运行的软件都被限制于虚拟机提供的资源当中

Java虚拟机(JVM, Java Virtual Machine):

Java虚拟机是一台执行JVM字节码的虚拟计算机, 它拥有独立的运行机制, 其运行的Java字节码也未必是由Java语言编译而成,

JVM平台的各种语言可以共享Java虚拟机带来的跨平台性, 优秀的垃圾回收器, 以及可靠的及时编译器(JIT)

  • JIT : JIT其实只是一款及时编译器, 但是由于其太过经典, 现在已经成为了及时编译的代名词

Java技术的核心就时Java虚拟机, 因为所有Java程序都运行在Java虚拟机内部

Java虚拟机的作用:

Java虚拟机就是二进制字节码的运行环境, 负责装载字节码到其内部, 解释/编译为对应平台上的机器指令执行, 每一条Java指令, Java虚拟机规范中都有详细定义, 如怎么取操作数, 怎么处理操作数, 处理结果放在那里

Java语言的跨平台性就是因为不同操作系统上安装对应的JVM之后(JVM与硬件没有直接关系, 但是与操作系统有关, 不同操作系统上的JVM不同),我们在任何一个位置使用前端编译器Javac工具编译Java源文件或者其他语言文件为class字节码文件之后经过对应的JVM内部编译/解释之后就会转换为对应操作系统上的机器指令

注意: 字节码文件格式是严格的, 只有一个格式, 不管是何种语言, 只要能编译为class字节码文件, 那么最终生成的字节码文件肯定是相同的

Java虚拟机的特点:

  1. 一次编译, 到处运行(这里指的是在不同的平台上运行==(平台 = 操作系统 + cpu)==)
  2. 自动内存管理
  3. 自动垃圾回收功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值