JVM

JVM即Java虚拟机。Java有一个突出的特点就是平台无关性,而这一点正是由jvm实现的。

一般高级语言在不同的平台运行的时候都需要至少编译成对应的目标文件,而java虚拟机的引入使java语言能够在各种平台上执行,只需要生成java虚拟机能运行的目标文件(字节码文件)即可,jvm会将字节码解释成具体平台的机器指令执行。

jvm是操作系统中的一个进程,是java运行的容器,因此也有自己的生命周期、代码和数据空间。

java语言编写的程序首先经过编译不会生成特定平台的机器码,而是生成一种与平台无关的字节码(.class文件),这个字节码不是可执行的,而是要经过解释器解释执行,所以说java既是编译型语言也是解释性语言,但又不是纯粹的编译型语言也不是纯粹的解释性语言,它需要先编译,后解释。下图是java执行的两个步骤:


java中负责解释字节码文件的就是jvm。

当使用java编译器编译java时,生成的是平台无关的字节码,这些字节码不是面向平台的,只是面向jvm,不同平台上的jvm是不同的,但是它们都提供了相同的接口。jvm是java跨平台的关键部门,只要给各平台实现了相对应的虚拟机,那么编译后的字节码文件就能够在该平台上执行。

举个例子说,有两支笔(圆柱形和三角形),一个笔帽套(六边形),现在如果想要用这个笔帽连接这两支不同的笔,就需要给这两支不同的笔分别安装一个在转换器,转换器的一头是圆柱形或三角形连接笔,一头是六边形连接笔帽。

现在可以理解为这两支笔就是操作系统,笔帽就是java字节码,转换器就是jvm,可以理解为不同平台上的jvm向上面向字节码提供的接口相同,向下面向操作系统提供的接口不同。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值