楼兰小石头 2017-11-03 02:53 采纳率: 100%
浏览 837
已采纳

关于语言跨平台的理解?

大家都说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的编程,一定会深入具体的平台特性,他是跨平台的关键。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向