Java虚拟机------JVM

3 篇文章 0 订阅

上次写的一篇 分析java程序的运行过程 ,里面并没有讲清楚java语言程序“一次编写,到处执行”特点的原理,今天通过java虚拟机来说明java程序如何实现这种特性。希望通过这篇博客 对大家理解JVM原理有所帮助。

       首先说一下JVM的概念,按照书本上的定义:JVM(Java 虚拟机)是一种用于计算设备的规范,Java虚拟机包括:一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆 和 一个存储方法域。

      说白了,JVM其实就是一台假想的计算机,在它上面可以运行Java代码,只要根据规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何java代码能够在该系统上运行。

         那么为什么要使用JVM呢?

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

         来看一下JVM的作用

         Java虚拟机试运行Java程序的软件环境,Java解释器是Java虚拟机的一部分。在运行Java程序时,首先会启动 JVM ,然后由它来负责执行Java 的字节码,并且Java字节码只能运行于JVM之上。

             这样利用JVM 就可以把字节码程序与具体的硬件平台以及操作系统环境分隔开,只要在不同的计算机上安装了针对于特定平台的JVM,Java程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。所以说,JVM隐藏了不同的软硬件平台的具体差别,从而实现了跨平台的移植。Java的跨平台特性就正是通过在JVM中运行Java程序来实现的。好了,上张图来说明这一切吧,如下:

                                       

最后需要注意的是:Java程序通过JVM 可以实现跨平台的特性,单JVM是不跨平台的,也就是说,不同的操作系统上的JVM是不同的,Windows平台上的JVM不能用在Linux上,反之亦然。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值