(1) Java是跨平台的语言,Java程序编译成字节码文件可以在Windows操作系统(win版JVM)、Linux操作系统(Linux版JVM)、MAC操作系统(Mas版JVM)运行。
(2) Java是跨语言的平台,多种语言(kotlin、clojure、croovy、scala、jython、jruby、JavaScript等语言)经过编译器编译成字节码文件可以在Java虚拟机中运行。
(3) Java虚拟机平台上可以运行非Java语言编写的程序,Java虚拟机不需要关心内部程序是什么语言编写的,只关心“字节码”文件。Java不是强大的语言,但是JVM是最强大的虚拟机。
(4) 字节码。Java字节码是指用Java语言编译成的字节码,任何能在JVM平台上执行的字节码格式都一样,统称为jvm字节码;不同的编译器可以编译出相同的字节码文件,字节码文件也可以在不同JVM上运行;Java虚拟机与Java语言没有必然联系,它只和特定的二进制文件格式——class文件格式关联,class文件包含了Java虚拟机指令集(也称字节码、bytecodes)和符号表,还有一些其它的辅助信息。
(5) Java平台上可以实现多语言混合编程,通过特定领域的语言去解决特定领域的问题是当前软件开发应对日趋复杂的项目需求的一个方向。各种语言之间的交互不存在任何困难,就像使用自己语言的原生API一样方便,因为最终他们都运行在一个虚拟机上。由于Java外的语言来自系统级的、底层的支持,以JSR-292为核心的一系列项目和功能改进,推动Java虚拟机从“Java语言的虚拟机”向“多语言虚拟机”方向发展。