原因:
1.Java本身就是一种可撰写跨平台应用程序的面向对象的语言。其中虚拟机帮大家做的就是兼容不同的系统调用不用的API。所以大部分的跨平台问题已经帮大家解决了。
2.Java的跨平台可以成为一次编译,到处运营。Java在编译的时候没有编译成指定的CPU的汇编代码,也没有和具体操作系统的系统调用相关联。
3.有一个作者回答的从三个方面考虑这个问题,这边要和大家解释一下,不要把可移植弄成跨平台。跨平台语言最大的特点是不编译机器码,不使用系统的API。
总结:
简单说就是大家写的代码能不能直接在另外一个操作系统,甚至是CPU。但几乎大家熟知的语言都可以。不仅题主所说的,还有PHP、JavaScript,Go等等。
Java是跨平台,那么是编译出来的而简直文件可以在其他任何安装了Java运行环境的平台上,要是没有安装也是行不通。另外C语言的话,编译出来的东西一般智能在一类操作系统上,换了就不可以。但是运行时不需要额外任何运行环境。
最后C%和Python,亦或者PHP和Js等都可以实现代码在多种平台上直接运行。不过也都是需要相应的环境。