Java知多少虚拟机(JVM)以及跨平台原理
2016-07-31 10:39
309 查看
相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的。
那么,跨平台是怎样实现的呢?这就要谈及Java虚拟机(Java Virtual Machine,简称 JVM)。
JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。
而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。
JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。
注意:编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。
所以,运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。
注意:跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。
图1 JVM实现跨平台
那么,跨平台是怎样实现的呢?这就要谈及Java虚拟机(Java Virtual Machine,简称 JVM)。
JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。
而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。
JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。
注意:编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。
所以,运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。
注意:跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。
图1 JVM实现跨平台
相关文章推荐
- Java知多少(2)虚拟机(JVM)以及跨平台原理
- Java入门教程-1.2Java虚拟机(JVM)以及跨平台原理
- JAVA 跨平台原理以及jdk、jre、jvm之间的关系
- Java虚拟机(JVM)以及跨平台原理
- Java内存模型及GC原理java内存模型 Java内存模型及GC原理 Java内存模型及GC原理 sun官方网站:sun java 虚拟机模型 Java内存模型及GC原理 JVM内存模型中分两
- Java虚拟机(JVM)以及跨平台原理
- JVM原理二----JAVA虚拟机体系结构
- JAVA的JVM虚拟机工作原理.V.1.0.0
- JVM 内部原理(五)— 基本概念之 Java 虚拟机官方规范文档,第 7 版
- java语言的跨平台原理以及环境的搭建
- 【java基础】Java 虚拟机及 Java 的跨平台原理
- Java虚拟机(JVM)以及跨平台原理
- java内功 ---- jvm虚拟机原理总结,侧重于虚拟机类加载执行系统
- java内功 ---- jvm虚拟机原理总结,侧重于GC
- Java原码、反码和补码的算法,Java跨平台原理,以及JDK安装目录说明
- 【深入理解Java虚拟机JVM】java如何实现跨平台
- Java虚拟机(JVM)以及跨平台原理
- JavaSE基础之Java语言的跨平台原理(JVM)
- 获得 Java 虚拟机 (JVM) 信息
- 《跟旺旺老师学Java》_第一章Java简介与JDK部署_第二部分Java跨平台原理