一、首先我们要了解什么是跨平台?
这就先得明白一个概念,平台相关性,就是对应的程序只能运行在对应的系统。就好比,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的能够“一次编译,到处运行”的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117832.html