Java为什么可以跨平台(JVM)?

一、首先我们要了解什么是跨平台?

这就先得明白一个概念,平台相关性,就是对应的程序只能运行在对应的系统。就好比,Windows 系统只能运行 Windows 的程序(exe),Linux 系统只能运行 Linux 的程序,Mac 系统只能运行 Mac 的程序。Windows 的可执行文件,不能直接运行在 Linux 系统中,反之亦然,就好比 Android 手机不能运行iPhone 的 App 程序一样。

跨平台就是无视平台相关性。

 

二、而Java是可以跨平台的,为什么呢?

两大原因:

(1)Java 文件经过编译后生成和平台无关的 class 文件。

(2)而Java虚拟机(JVM)是不跨平台的,java工具会把统一的class文件,加载到对应的JVM,又因为该JVM是和这个系统是对应的,所以就可以运行。

(粗俗点,一样的米饭,猫吃进入最后是猫屎,狗吃最后是狗屎,老鼠吃了就是老鼠屎)

 

三、而这些就被人总结成了Java跨平台原理,是什么呢?

运行程序的物理机器各式各样(Windows/Linux/Mac...),而Java虚拟机(JVM)则在各式各样的物理机器上建立了统一的运行平台,它能屏蔽与具体平台相关的信息,实现了任意一台虚拟机上编译的程序都能在任何一台虚拟机上正常运行。

然后Java语言编译程序只需生成在Java虚拟机上运行的字节码文件,就可以在多种平台上运行。

这就是Java的能够“一次编译,到处运行”的原因。

 

 

 

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一碗谦谦粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值