大家都说JAVA是跨平台的,其实我不是很理解,像c在Windows上用VS编译器编译可以运行,在Linux上用gcc编译可以运行,那么我觉得c也是跨平台的,但是编译后的可执行文件是无法在不同平台上执行,这个我能理解因为平台内核不一样,可执行文件坑定是不一样的,我想问JAVA的可执行文件其实是一样的是不是无论是在Linux上还是在Windows上?关键在于jdk这个东西是不是,那么我想问jdk做了什么工作在这个过程中?
7条回答 默认 最新
- chinarealone 2017-11-03 09:33关注
平台不单纯只操作系统,包括硬件和OS,包括指令集的不同,内存管理的不同等等。
c、c++,可以认为具有跨平台“开发”的能力,但是不具备“一次编译,到处运行”的跨平台“应用”的能力。
java的跨平台不是魔法,它编译生成的是平台不相关的字节码,例如它说要有光,那么jvm(虚拟机)在windows平台点亮led,在linux平台点亮蜡烛,
在苹果平台点亮火把。
jvm的编程,一定会深入具体的平台特性,他是跨平台的关键。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用