Java 语言是跨平台的(write once, run anywhere)当 Java 源代码成功编译成字节码后,如果想在不同的平台上面运行, 则无须再次编译但是 这个优势不再那么吸引人了。Python、PHP、Perl、Ruby、Lisp 等有强 大的解释器 ,跨平台似乎已经快称为一门语言必选的特性Java 虚拟机:跨语言的平台Java 虚拟机不和包括 Java 在内的任何语言绑定,它只与"Class 文件"这 种特定的二进制文件格式所关联。无论使用何种语言进行软件开发, 只要能 将源文件编译为正确的 Class 文件,那么这种语言就可以在 Java 虚拟机上执行,可以说,统一而强大的 Class 文件结构,就是 Java 虚拟机的基石、桥梁。1606747481563JVM的特性所有的 JVM 全部遵守 Java 虚拟 机规范,也就是说所有的 JVM 环境都是一样的, 这样一来字节码文件可以在 各种 JVM 上进行。 JVM官方文档规范: https://docs.oracle.com/javase/specs/index.html,想要让一个 Java 程序正确地运行在 JVM 中,Java 源码就是必须要被编译 为符合 JVM 规范的字节码 ,所以在把java文件转换为 JVM可以识别的Class文件,需要编译器的完成,也就是javac, 称为前端编译器前端编译器的主要任务就是负责将符合 Java 语法规范的 Java 代码转换为 符合 JVM 规范的字节码文件javac 是一种能够将 Java 源码编译为字节码的前端编译器javac 编译器在将 Java 源码编译为一个有效的字节码文件过程中经历了 4 个步骤,分别是词法分析、语法分析、语义分析以及生成字节码。1606747794010Oracle 的 JDK 软件包括两部分内容(对应上图):一部分是将 Java 源代码编译成 Java 虚拟机的指令集的编译器另一部分是用于实现 Java 虚拟机的运行时环境
字节码文件的跨平台性
最新推荐文章于 2023-01-09 18:01:29 发布