JRE 和 JVM 是什么关系

 

 

     J2SE的课程终于听完了!在总结的时候,发现我们在安装JDK的时候选择安装的JRE和java的核心机制Java虚拟机从功能上看好像是一个东西。如果一样为什么还要有两个名字呢?

既然不同,那他们又有什么样的关系呢?

 

先说一下什么是虚拟机:

那两天我在我机器上安装了一个虚拟机。试着看了看,安装过程就不说了非常简单。(用到了一个软件 VMware Workstation)。重新定义了硬盘大小,和内存大小,然后装上系统就可以使用了!

         我们来看一下虚拟机的定义吧!虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

         那java虚拟机也是相同的了!同样有着虚拟出来的硬件设备。经过材料搜索发现java虚拟机还真是这样工作的。

        

         什么是Java虚拟机

Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

         那为什么要有java虚拟机呢? 之前学习的vb、C#语言中好像没有听到过这样的名词!

         这就不得不说一下java语言的特殊性。Java为解释性语言! 只需要编译一次(编译成java虚拟机可以读懂的文件),就可以在不同的运行环境中,通过java虚拟机把编译出来的程序,解释给运行环境,这样就可以运行了。

     实现一次编译,到处运行的特点!

 

【此内容为转载     Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。】

 

         虚拟机大概知道了,那jre又是个什么东东啊?

我们在安装JDK的时候,有一个让我们选择安装JRE的阶段。其实安装JDK的时候已经自动安装了一套JRE,在<JDK安装目录下>\jre 。而我们如果选择了安装后面提示的JRE安装,又会有一套JRE安装在你的机器上,默认路径为:C:\Program   Files\Java(路径可以自定义)。

 

关于这两套JRE的区别就不多说了,网上有好多的答案。我们现在来说说JRE和JVM的具体的区别。(个人意见)

JVM(Java Virtual Machine)是java虚拟机,而JRE(Java Runtime Environment)是java运行环境。

从百度百科上查到JRE包含JVM。JVM是个虚拟机,虚拟出来的计算机——一个适合java程序运行的计算机。用来运行java编译出来的class文件的和实际操作系统平台没有关系。在百度百科上这样一段话:“JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。……”正如我上面所描述。

 

“JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似。”这也是摘自百度百科上的原话,看起来好像和上面有写矛盾,上面已经说了JVM屏蔽了具体的操作系统平台,那怎么他还和操作系统又关系呢?

个人认为,像具体平台解释字节吗的并不是虚拟机本身而是,JRE中除了JVM的其他部分。如下图所示:

    通过JRE的其余部分检测具体平台(是多少位机,是什么操作系统等等)。之后将JVM运行的java程序解释成具体平台可以读懂的语言执行。

    大体上jre和jvm的关系说明白了,不过只是个人猜测。请多指教!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值