返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java程序为何“编译一次,到处运行”?
  • 140
分享到

Java程序为何“编译一次,到处运行”?

java教程Java 2016-12-19 23:12:51 140人浏览 猪猪侠
摘要

与其他语言相比,Java程序能够做到“编译一次,到处运行”,可见它的跨平台性非常强。但是java的这种跨平台到底是怎么一回事啊,在这之前我们先了解一下不能跨平台是怎么一回事。C或者c++等高级语言,是贴近于人类可阅读的语言,比较接近于英语语

与其他语言相比,Java程序能够做到“编译一次,到处运行”,可见它的跨平台性非常强。但是java的这种跨平台到底是怎么一回事啊,在这之前我们先了解一下不能跨平台是怎么一回事。

C或者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,经过编译程序编译之后生成扩展名为.class的字节码。如果想要执行字节码文件,目标平台必须要安装JVM(java虚拟机),JVM会将字节码翻译为相依与平台的计算机指令,即:0、1序列。

但是一定要记着:不能的平台要安装专属该平台的JVM。这就好比你讲中文(*.java),Java编译程序帮你翻译为英文(*.class),这份英文文件到各个国家之后,再由当地看得懂英文的人(JVM)翻译为当地语言(机器指令)。

所以JVM担任的职责之一就是当地翻译员,将字节码文件翻译为当时平台看得懂的0、1序列,有了JVM,你的Java程序就达到了“编译一次到处运行”的跨平台目的。所以到这里。我们就知道了java程序跨平台性好的根本原因就是java虚拟机JVM存在的原因。

对JVM的重要认知就是:

对Java程序而言,只认识一种操作系统,这个系统就是JVM,字节码文件(扩展名为.class的文档)就是JVM的可执行文件。

Java程序理想上,并不理会真正执行哪个平台,只要知道如何执行于JVM就可以了,至于JVM实际上如何与底层平台沟通,那是JVM自己的事。由于JVM实际上相当于Java程序的操作系统,JVM就负责了Java程序的各种资源管理。

我们要记住两点:

JVM就是Java程序的操作系统,JVM的可执行文件就是.class文件。

Java虚拟机屏蔽了操作系统之间的差异,但是不同的系统使用的虚拟机不同。

--结束END--

本文标题: Java程序为何“编译一次,到处运行”?

本文链接: https://lsjlt.com/news/4296.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java程序为何“编译一次,到处运行”?
    与其他语言相比,Java程序能够做到“编译一次,到处运行”,可见它的跨平台性非常强。但是java的这种跨平台到底是怎么一回事啊,在这之前我们先了解一下不能跨平台是怎么一回事。C或者C++等高级语言,是贴近于人类可阅读的语言,比较接近于英语语...
    99+
    2016-12-19
    java教程 Java
  • cmd编译运行java程序的方法
    目录0.写入程序1.编译2.运行3.将class输出到指定package4.CLASSPATH5.常见错误6.引入jar包0.写入程序 public class HelloWorld...
    99+
    2024-04-02
  • linux如何编译运行c程序
    在Linux系统中,编译和运行C程序有以下几个步骤:1. 编写C代码:使用任意文本编辑器编写C程序代码,并将其保存为`.c`文件,例...
    99+
    2023-09-22
    linux
  • mac系统如何在终端编译运行java程序
    本教程是建立在大家已经安装了JDK环境的基础上。首先编写一个简单的输出“Hello world"程序。注意程序名一定要保存为.java后缀。然后在终端切换到源程序保存的目录。这里我是保存在桌面的,所以就切换到desktop文件夹下面相关视频...
    99+
    2015-05-07
    java入门 mac 系统 终端 编译运行 java 程序
  • vscode怎么编译运行c程序
    在VSCode中编译和运行C程序,需要进行以下步骤: 安装C/C++插件:在VSCode中点击"Extensions"图标(左侧...
    99+
    2023-10-23
    vscode
  • java程序如何编写和运行
    要编写和运行Java程序,需要按照以下步骤进行操作:1. 安装Java开发工具包(JDK):首先需要从Oracle官方网站下载并安装...
    99+
    2023-08-28
    java
  • java程序编好了如何运行
    这篇文章主要介绍“java程序编好了如何运行”,在日常操作中,相信很多人在java程序编好了如何运行问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java程序编好了如何运行”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-30
  • Java jdk如何正确编译运行
    这篇文章主要介绍“Java jdk如何正确编译运行”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java jdk如何正确编译运行”文章能帮助大家解决问题。一般来说安装完jdk之后,一定要按一下步骤配...
    99+
    2023-06-03
  • 使用mac终端编译运行c程序
    使用mac终端编译运行c程序 本文介绍如何利用mac自带文本编辑软件编写c代码,并在mac自带终端内用命令行编译运行c程序。 1.在mac上安装c编译环境 打开mac自带的终端 在终端命令行里...
    99+
    2023-10-05
    macos c语言
  • 怎么在Ubuntu/Debian Linux上编写、编译和运行一个C程序
    这篇文章给大家分享的是有关怎么在Ubuntu/Debian Linux上编写、编译和运行一个C程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。步骤 1: 编写你的 C 程序,并使用一个 .c ...
    99+
    2023-06-15
  • C语言从编译到运行过程详解
    目录C语言从编译到运行一、前言二、C程序编译过程三、阶段过程1、预处理阶段2、编译阶段3、汇编阶段4、链接阶段C语言从编译到运行 一、前言 最近在看CSAPP(深入理解计算机系统)然...
    99+
    2024-04-02
  • idea编译正常,运行出现java: 程序包XX不存在
    idea编译正常,运行出现java: 程序包XX不存在 最近在将maven项目fastjson升级到fastjson-1.2.83.jar版本,编译正常,运行出现程序包xxx不存在,但是确实有对应的j...
    99+
    2023-08-31
    java intellij-idea maven
  • SpringBoot整合Docker实现一次构建到处运行
    写在前面 🍁个人主页:微枫Micromaple ✨本期专栏:《0到1项目搭建》欢迎订阅学习~ 📌源码获取:GitCode、GitHub、码云Gitee 持续更新中,别忘了 star 喔~ 本文讲...
    99+
    2023-08-17
    docker spring boot 容器 java linux
  • 怎么运行一个java程序
    要运行一个Java程序,你需要以下步骤:1. 安装Java Development Kit (JDK):首先,确保你已经安装了Jav...
    99+
    2023-08-23
    java
  • java程序如何运行
    这篇文章主要介绍“java程序如何运行”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java程序如何运行”文章能帮助大家解决问题。本教程操作环境:windows7系统、java10版,DELL G3...
    99+
    2023-06-30
  • Java入门教程--带包的类如何编译与运行
    目录包机制概述带包的类如何编译与运行1.编译带包的类首先需要配置好环境变量2.配置好后在此输入 cmd 回车打开命令窗口3.输入 javac HelloWorld.java 回车进行...
    99+
    2022-12-23
    Java入门教程 Java带包编译 Java带包运行
  • C语言从编译到运行的过程是什么
    C语言从编译到运行的过程可以简单描述为以下几个步骤:1. 编写源代码:首先,程序员使用文本编辑器编写C语言源代码,包括各种语句和函数...
    99+
    2023-08-14
    C语言
  • 如何在控制台编译运行java文件
    首先:打开控制台cmd.exe,然后在控制台输入:java -version然后输入: javac相关学习视频教程推荐:java课程出现以上信息证明java环境配置正确。然后从命令行找到java文件路径。例如我的放在了F:javaTests...
    99+
    2016-08-01
    java入门 控制台 编译运行 java 文件
  • eclipse如何运行java程序
    在Eclipse中运行Java程序可以通过以下步骤进行:1. 打开Eclipse并创建一个Java项目。可以选择“File”菜单,然...
    99+
    2023-09-27
    eclipse java
  • tomcat如何运行Java程序
    要在Tomcat中运行Java程序,您可以创建一个动态Web项目,并将其部署到Tomcat服务器中。 以下是一些简单的步骤: 在E...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作