Java程序为什么可以一次编译,处处运行?,为什么java程序可以一次编写到处运行
与其他语言相比,Java程序可以“编译一次,到处运行”,可见其跨平台性非常强。但是java的这种跨平台是什么呢?在此之前,我们先来了解一下无法跨平台是什么感觉。
如何解决写爬虫IP受阻的问题?立即使用。
或者C等接近人类可读语言的高级语言,更接近英语语法。然而,计算机只识别由0和1的序列组成的机器指令。因此,需要将C或C语言翻译成计算机可以识别的由0和1的序列组成的机器指令。译者负责这种翻译。
问题是每个平台上识别的0和1的序列不一样。某一条指令在Windows上可能是0101,在Linux上可能是1010,所以需要用一个不能用的编译器来编译不同平台的可执行机器码。在Windows上编译的程序不能直接在Linux等其他平台上执行。
也就是说,用C或C语言编写的程序无法达到“编译一次,到处运行”的跨平台目的。
Java也是一种高级语言。如果你想让计算机执行你的Java程序,你必须通过编译器编译它。但是Java编译器根据计算机平台的不同,并不是直接把Java源代码编译成0和1的序列,而是编译成字节码。
Java源代码的扩展是。java,以及扩展名为。类是在编译器编译它之后生成的。如果要执行字节码文件,目标平台必须安装JVM(java虚拟机),它会把字节码翻译成平台相关的计算机指令,也就是0和1的序列。
但是一定要记住:如果不能,就要安装那个平台专用的JVM。就像你说中文(*。java),Java编译器将其翻译成英文(*。类)给你。这个英文文档到达各个国家后,会被当地懂英文的人(JVM)翻译成当地语言(机器指令)。
所以JVM的职责之一就是做一个本地翻译器,把字节码文件翻译成当时平台能理解的0和1的序列。有了JVM,你的Java程序就可以达到“编译一次,到处运行”的跨平台目的。所以过来吧。我们知道,java程序跨平台性能好的根本原因是java虚拟机JVM的存在。
对JVM的重要认知就是:
对于Java程序,只有一个操作系统,就是JVM,字节码文件(带有。类扩展)是JVM的可执行文件。
理想情况下,Java并不关心它实际在哪个平台上执行,只要它知道如何在JVM上执行。至于JVM实际上如何与底层平台通信,那是JVM自己的事。由于JVM实际上相当于Java程序的操作系统,JVM负责Java程序的各种资源管理。
我们要记住两点:
1.JVM是Java程序的操作系统,JVM的可执行文件是。类文件。
2.Java虚拟机屏蔽了操作系统之间的差异,但是不同的系统使用不同的虚拟机。这就是为什么上面的Java程序“编译一次,到处运行”?更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。