0

也许我在这里问了一个非常明显和愚蠢的问题,但我在谷歌上什么也得不到,所以我开始了:

为什么有这么多关于 Java 是平台独立的事实而其他一些语言不是。我的意思是,就我的理解而言,总的区别只是编译步骤的存在/不存在,不是吗?

在 Java 中,当您在不同平台上运行字节码时,您不必再次编译代码,而在 C 或 C++ 中,您必须再次编译代码才能在不同平台上运行它(Am我错了吗?)。

因此,依赖于平台只是意味着多了一个编译步骤。这太多了吗?我在编程方面没有太多经验,所以也许我在这里遗漏了一些明显的实用点。

4

1 回答 1

1

平台独立性有不同等级:

  • 二进制平台独立性:同一个编译后的可执行文件可以在不同的平台上运行而无需任何额外的步骤(例如Java)。
  • 源代码平台独立性:可以为不同的平台编译相同的源代码(例如,可能用于精心设计的 C++ 程序)。
  • 多平台代码:源代码包含多个版本的平台相关代码元素,可以通过在编译前设置相关开关来选择(典型用于 UNIX 风格的 C 程序)。
  • 平台相关代码:源代码仅编译为在一个特定平台上运行的可执行文件,例如 Windows 32 位。针对不同的平台意味着重写大量代码。

因此,问题是您想要覆盖哪些平台以及您想要为各种平台投入多少精力。

对于客户端,您有 Windows 32 和 64 位、Macintosh、Linux 变体、Android 和 iOS,以列举最流行的。唉,由于智能手机和平板电脑的用户交互方式不同,很难用相同的源代码覆盖所有这些平台。开箱即用,Java 仅涵盖经典桌面。HTML 5 和 Javascript 承诺覆盖整个客户端范围。

在服务器端,主要有 Linux 版本和 Windows 64 位,这里 Java 的平台独立性真的很厉害。这就是为什么许多 Web 和应用程序服务器都是基于 Java 的原因。但其他技术也可以在这里做同样的事情。

于 2018-01-21T18:55:24.193 回答