java - Java真的那么跨平台吗?

标签 java cross-platform

现在,我开始听到很多有关 Java 的信息。我知道这是因为它是跨平台的。但真的是这样吗?

我们对客户端安装 JVM 的信任程度如何?我家里有很多关于 Java 的书,我很想阅读它们。但每次我都会遇到同样的问题。我用 Java 开发的应用程序可以在大多数机器上运行吗?这不是很糟糕吗?

一种解决方法是使用一些编译器将 Java 代码编译为 native 机器代码。但这让我觉得,“那为什么要使用 Java?”

那么,跨平台学习Java值得吗?关于安装 JVM 的人数百分比有什么想法吗?

最佳答案

我想纠正你,人们不需要安装 jre,他们需要 jvm。

由于Java仅依赖于JVM,因此它是平台无关的(如果平台安装了JVM)。

但最主要的是,程序员不必了解平台的具体知识,也不必在编写应用程序时记住一个特定的平台。他只需要编写生成字节码的代码,其余部分由 JVM 处理,即可在任何其他平台上运行。

如果你将java与其他语言进行比较,你会得到确切的区别,就像在c/c++中一样,源代码(c程序文件)在使用编译器编译后直接转换为 native 机器代码(特定机器可以理解)您在其上编译代码)。因此c/c++编译后的代码不能在不同的操作系统上运行。

关于java - Java真的那么跨平台吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32665974/

相关文章:

javascript - 在各种平台(例如智能手机、平板电脑)上保持 div 的大小

c++ - 如何在 Linux C++ 中使用 ***sprintf_s***

java - 应用程序可以在 Windows 上运行,但不能在 Linux 上运行

java - 如何在 android studio 中将 TimeStamp datetime 的值转换为 mysql

java - 如何使用 @Configurable 结合 readResolve() 来注入(inject)依赖项

c++ - 3D 场景文件格式和查看器

c++ - 有没有办法自动使库成为静态或动态的?

java - JUnit:是否可以模拟在全局变量的初始化中调用的静态方法?

java - NotificationChannel 不适用于 Android 8 及更高版本

Java正则表达式换行符与制表符或空格匹配错误