java的跨平台性实际上是JVM的跨平台性。 拿c语言举例,若在Windows上和Linux上执行需要对这两个操作系统提供不同的接口,故没有跨平台性。而JVM是只认字节码的,同一份java源代码编译生成的字节码是唯一的,当字节码在不同操作系统上运行的时候,会由各自操作系统版本的JVM去解释,翻译成各自操作系统的接口调用,实现跨平台性。 简单的说,字节码在不同操作系统上是相同的,但不同操作系统有各自的版本的JVM,使得在字节码相同的情况下在不同操作系统上使用。