为什么需要平台无关性
用一句话来阐述就是 Write once, run anywhere (即书写一次,到处运行),平台无关性有以下几个优点
- 支持多变的网络环境
- 支持网络化嵌入式设备
- 减少开发和在多个平台部署应用程序的成本和时间
为什么Java被称作是平台无关的编程语言
各个不同平台的虚拟机与所有平台都统一使用的程序存储格式 ──字节码是构成平台无关性的基石。Java的平台无关性很大程度上依赖于JVM(Java Virtual Machine),Java虚拟机是可以执行Java字节码的虚拟进程。准确的来说,Java语言的跨平台指Java源文件经过javac编译器成的字节码(.class)的跨平台。不同的平台安装不同的JVM,,字节码(.class)运行在JVM上,而JVM能够将相同的字节码翻译成与平台相关的机器码,从而进一步再执行。
Java是如何支持平台无关性
- Java平台本身。Java平台扮演Java程序和所在的硬件与操作系统之间的缓冲角色,这样Java程序只与Java平台打交道,不需要和具体的操作系统打交道
- Java语言保证了基本数据类型的至于和行为都是由语言自己定义的。
- Java class文件。Java程序经过javac命令被编译成二进制class文件。class文件按可以在任何平台创建,也可以被任何平台的JVM装载运行。class文件有着严格的定义,与平台无关
- 可伸缩性
JVM还支持哪些语言
JVM除了支持java外,还支持其他语言,比如Kotlin、Groovy、JRuby、Jython、Scala