JVM 为什么是语言无关的?

Java 是平台无关性的语言

Java 编译器把 .java 源文件统一编译成 .class 文件,JVM 虚拟机去适配不同平台和CPU。JVM 相当于一个中间层,对上层的 java 语言来说,抹平了不同平台之间的差异,所以说 Java 是平台无关性的语言

Java 虚拟机是语言无关的

Sun 团队在最初设计的时候,就把 Java 规范拆分成了 Java 语言规范和Java虚拟机规范。对于Java虚拟机来说,只要 .class 符合要求就可以执行,并没有规定源文件必须是 Java。

所以,基于这个原因,scala / Groovy / jpython 等,它们只要能实现一个从目标语言源文件到 .class 文件的编译器就可以在 Java 虚拟机上执行了。

你可能感兴趣的:(JVM 为什么是语言无关的?)