字节码?虚拟机?java虚拟机?不要晕?看这儿!

虚拟机和java虚拟机的区别??

谈到虚拟机大家都不陌生,比如当大家要安装linux操作系统时,都会先下载VM ware 或者Visual Box,然后通过他们来安装操作系统

或者你也可以直接给电脑安装一个双系统;

那java虚拟机又是什么呢?

1.认识一下虚拟机

所谓虚拟机就是一台虚拟的计算机,它是一款软件,用来执行一系列虚拟计算机指令.大体上来说,虚拟机分为系统虚拟机和程序虚拟机

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

2. 虚拟机的分类

  1. 系统虚拟机

    系统虚拟机:是完全对物理计算机的仿真,提供了一个可以运行完整操作系统的软件平台;

    比如大名鼎鼎的VM ware ,Visual Box 就属于系统虚拟机;通过它们我们可以模拟一个计算机:新建虚拟机,然后分配多大内存,分配几个cpu等等……

    当我们新建好虚拟机并且分配好时,一台虚拟的计算机就已经OK了,此时我们可以给这台虚拟的计算机安装你想要的操作系统;

    总结:系统虚拟机是对硬件的仿真模拟!!

  2. 程序虚拟机

    程序虚拟机的典型代表就是java虚拟机(JVM),它专门为执行单个计算机程序而设计,在java虚拟机中执行的指令我们称为java字节码指令.

那什么又是字节码呢??

在java中,JVM可以理解的代码就叫字节码(即扩展名为,class文件),它不面向特定的处理器,只面向虚拟机.java通过字节码的方式,在一定程度上解决了传统解释型语言效率低的问题,同时保留了解释型语言可移植性的特点;

提到字节码,我们不得不提java代码是怎样运行的了!!!
主要经过以下几个步骤

在这里插入图片描述
java代码和通过jdk中的开发工具比如(javac)编译后形成java字节码(也就是.class的文件),然后通过jvm编译,解释执行,最终变成机器可以看懂的机器码(也就是01010101);

这也就是为什么我们在写java语言时,要先下载jdk的原因了;
tips:这里涉及到的jvm,jre,jdk,不清楚的小伙伴
可以参考这篇文章哦

注意:jvm的‘原材料’是字节码,不仅仅局限于java字节码,

因为只要我们编译好的字节码文件满足jvm的格式和标准,都可以被执行,

总结:程序虚拟机是用来执行程序的!!

最后看一张图,区分Java虚拟机(JVM)和系统虚拟机
总的来说:系统虚拟机>JVM

在这里插入图片描述
注意:

  • JVM是运行在操作系统之上的,它与硬件没有直接的交互
  • 系统虚拟机是对物理硬件的模拟仿真,
  • 也就是你还可以在系统虚拟机上安装JVM
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值