什么是java虚拟机

为什么会出现Java虚拟机?为甚Java跨平台原理?首先回答这两个问题

不同的操作系统之间,相同的操作系统不同位数,都有着不同的指令集,例如windows和linux,64位和32位。对于不夸平台的开发语言来说,在windows开发的一套系统,放在linux上跑会出问题,因此需要为不同的操作系统开发不同的版本。但Java的跨平台正是克服了这一缺点,他在操作系统与用户的程序之间增加了虚拟机,虚拟机屏蔽了指令集的差异。你可能会问怎么屏蔽的呢?Java为每一种操作系统都开发了一套Java虚拟机,而Java虚拟机只认识字节码文件(也就是.class文件),每一个.java文件要想运行都需要先编译成.class文件才能在Jvm上运行,也正是这样才有了java的一次编译 到处运行的说法,与其说Java的跨平台,不如说Java虚拟机的跨平台。

什么是java虚拟机_第1张图片

java虚拟机在java结构中所处的位置

什么是java虚拟机_第2张图片

Java虚拟机的作用简介 

Java虚拟机是java的基础和核心,Java虚拟机处于Java编译器和os平台之间的虚拟平台。java虚拟机可以运行字节码文件。虚拟机中的Java解释器将字节码文件解释成适合该硬件平台和操作系统的机器语言。

注意:通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作,因为此可执行文件包含了对目标处理器的机器语言。而Class文件这种特殊的二进制文件,是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的!

Java编译器只面向Java虚拟机,将源文件编译成.class文件。

你可能感兴趣的:(java虚拟机,为什么出现java虚拟机,一次编译,到处运行)