什么是JVM?java被称作是平台无关的编程语言?

要知道java虚拟机是什么,从虚拟机定义开始:虚拟机是模拟某种计算机体系结构,用来执行某种特定指令集的软件。
虚拟机分成系统虚拟机(VM ware 、Virtual box)和进程虚拟机(adobe flash player 、JVM等等),如果进一步细分,再加上高级语言的筛选,就有jvm、.net ClR 。

怎样才算是JVM ?

要成为jvm,要通过java tck(technology compatibility kit)的兼容测试的java语言虚拟机才能成为jvm。

Java被称为平台无关的编程语言是由于JRE 中JVM 的功能,关于为什么能一次编译,到处运行(首先的要求是计算机装有JVM),首先,编译分成两步:1、由java源代码生成字节码文件;2、JVM解析字节码,通过类加载等一系列步骤,把字节码文件“翻译”成本地可以执行的代码。因为JVM只认字节码文件,与java程序无关,在编译时,把java源码编译成字节码文件,然后在(当前平台的)JVM中生成本地代码[为什么是当前平台呢?因为不同操作系统某些指令有不同的表现方式]。在这里需要注意的是,由于在JRE中生成的字节码文件,所以为了更好的确保“一次编译,到处运行”,最好使用同样版本的JRE ,否则可能会出现不兼容的现象(比如说在jdk1.5中生成的字节码,并且使用了泛型等新特性,但是在其他机器上使用jdk1.4来执行该字节码文件)。

参考资料:
Java 虚拟机和 Java 内存区域概述

JAVA的一次编译,到处运行,你知道多少?

深入理解JVM内幕

深入理解JVM内幕 英文版

java的所谓一次编译,到处运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值