JVM是什么鬼

作者: 乔一丁_2020强化班 | 来源:发表于2020-11-20 15:24 被阅读0次

初见JVM(Java Virtual Machine)

学过java的小伙伴都听过Java名言:“一次编写,到处运行”;都知道有JVM这个东西,但它具体是干嘛?为啥要用它?你们知道吗?如果不知道的话就听我细细道来吧。

VM和M

VM的意思是虚拟机器Virtual Machine)一般我们都叫它虚拟机,那M就是单指“机器”,那这个机器是什么呢?

M

所谓的机器就是如同我们电脑中的CPU一样,可以读取信息、执行运算、发送信息的东西。
CPU从内存中读取指令,从硬盘中获取电脑内储存的文件,从摄像头读取图像,从麦克风读取声音,从键盘读取用户输入的文字等,同时,CPU还能给屏幕发送要显示的图像,给喇叭发送播放的声音,向硬盘写入文件等等。这些就是CPU与其外围设备的交互。毫无疑问的,CPU也可以进行运算,所以CPU就是实际存在的M

VM

那什么是VM呢?字面意思,就是虚拟的,并不真实存在的M,VM实际上就是一个运行在机器上的软件,同样也可以实现像M一样的功能:读取信息、执行运算、发送信息。但是实际上它是用软件编写,来模拟一个真实的机器,所以就被叫做虚拟机。

JVM

知道什么是VM,所以我们来讲讲JVM是什么。
既然JVM被称作是M,那它一定有机器的特点:读运写。那JVM具体怎么做来实现一个M的功能呢?
我们知道,当我们编写完一个java类时,其后缀名是“.java”,如果想运行它,必须要将它编译成“.class”后缀的文件才行。这个“.class”文件就是JVM能识别的指令和数据的集合。

.class 文件对于JVM就好比 .exe 文件对于CPU

JVM从class文件中读取信息,并根据这些信息来让CPU进行相应的运算。并且JVM也可以向屏幕和喇叭传入信息,只不过都是通过CPU来传话
从上文可以看出:虚拟机都是要依附机器存在的(可以套娃,在虚拟机里使用虚拟机,但是至少要有一个真实存在的机器,不然就是空中楼阁、不切实际的。)
这时候就有长得帅的小伙伴要问了:啊,既然都有机器了,要虚拟机干嘛?
诶~,这就是要提到文章开头说的,Java的名言:“一次编写,到处运行”。我们都知道电脑上的软件和手机上的软件是不通用的,甚至电脑之间的软件是不通用的(比如Windows、Linux或Mac),想要用一套代码在多种客户端上运行是很难的…………除非,你用java,由于JVM的存在,所有的JVM都能执行相同的class文件而不要对不同的客户端进行适配,只需要让客户在自己的客户端上安装对不同客户端适配的JVM,就能实现“一次编写,到处运行”

Android比较特殊,因为安卓使用的是谷歌自己实现的虚拟机,且程序启动方式与桌面端相差比较大,所以实际上就算你用java开发,也是需要对Android端进行适配的

相关文章

  • JVM是什么鬼

    初见JVM(Java Virtual Machine) 学过java的小伙伴都听过Java名言:“一次编写,到处运...

  • JVM内存管理(一)

    JVM与操作系统的关系 1.JVM 基础 1.1 Java Virtual Machine是什么 ​ JVM ...

  • 玩转JVM(上)

    JVM 是什么? Java virtual Machine JVM 全称 Java Virtual Machine...

  • markdown study

    这是什么鬼 这又是什么鬼

  • JVM知识点整理

    一、JVM是什么 JVM就是Java虚拟机(Java Virtual Machine),简单来说,JVM消除了开发...

  • [转]JVM基础知识

    JVM 的主要作用是什么? JVM 就是 Java Virtual Machine(Java虚拟机)的缩写,JVM...

  • JVM内存模型

    如果想了解JVM内存模型,首先我们要知道JVM是什么?JVM全称 Java Virtual Machine ,即J...

  • JVM简介集合,你确定不来看看?

    一、JVM是什么? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算...

  • 小白懂JVM系列-重识JVM

    JVM是什么? JVM是Java Virtual Machine(Java虚拟机[https://baike.ba...

  • jvm

    一、jvm是什么? jvm:Java Virtual Machine,Java虚拟机JVM是JRE的一部分。它是一...

网友评论

    本文标题:JVM是什么鬼

    本文链接:https://www.haomeiwen.com/subject/yubdiktx.html