Java 在刚刚诞生之初就提出过一个非常著名的口号:“一次编写,到处运行”, 这句话充分表达了软件开发人员对冲破平台界限的渴望
在竞争激烈的 IT 领域,各种不同的硬件体系结构和不同的操作系统肯定会长期并存发展。
“平台无关性” 的理想最终实现在操作系统的应用层上: Sun 公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现了程序的“一次编写,到处运行”。
各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码是构成平台无关性的基石。
实现语言无关性的基础仍然是虚拟机和字节码存储格式。 Java虚拟机不和包含Java在内的任何语言绑定,它只和“Class 文件”这种特定的二进制文件格式所关联,Class 文件中包含了 Java 虚拟机指令集和符号表以及若干其他辅助信息。
基于安全方面的考虑,Java 虚拟机规范要求在 Class 文件中使用许多强制性的语法和结构化约束,但任何一门功能性语言都可以表示为一个能被 Java 虚拟机所接受的有效的 Class 文件。
作为一个通用的、机器无关的执行平台,任何其他语言的实现者都可以将 Java 虚拟机作为语言的产品交付媒介。
Java 语言中的各种变量、关键字和运算符号的语义最终都是由多条字节码命令组合而成的,因此字节码命令所能提供的语义描述能力肯定会比 Java 语言更加强大。
因此,有一些 Java 语言本身无法有效支持的语言特性不代表字节码本身无法有效支持,这也为其他语言实现一些有别于 Java 的语言特性提供了基础。
原文地址:https://www.cnblogs.com/AmosH/p/10394805.html
时间: 2024-11-05 20:28:59