码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java入门基础第5天Java程序的执行流程/运行过程


    活动地址:CSDN21天学习挑战赛​

    Java程序的运行过程/执行流程

    • 一、Java程序运行的3个步骤
    • 二、三个步骤的作用及流程图
    • 三、 什么是Java虚拟机

    一、Java程序运行的3个步骤

    我们在Java入门基础第三天,使用记事本编写运行Java程序的小案例可以看出,Java 程序的运行必须经过编写、编译和运行 3 个步骤来实现。

    ​Java入门基础第3天《使用记事本编写运行Java程序》

    二、三个步骤的作用及流程图

    下面简单介绍一下这三个步骤的作用。

    编写:是指在 Java 开发环境中进行程序代码的输入,
    最终形成后缀名为 .java 的 Java 源文件。 编译:是指使用 Java

    编译器对源文件进行错误排査的过程,
    编译后将生成后缀名为 .class 的字节码文件,
    不像C语言那样生成可执行文件。

    运行:是指使用 Java 解释器将字节码文件
    翻译成机器代码,执行并显示结果。

    在这里插入图片描述

    字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。
    它是一种二进制文件,是 Java 源文件由 Java> 编译器编译后生成的目标代码文件。
    编程人员和计算机都无法直接读懂字节码文件,它必须由专用的 Java 解释器来解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。

    Java 解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,
    以便执行。因此 Java 程序不能直接运行在现有的操作系统平台上,它必须运行在被称为 Java 虚拟机的软件平台之上。

    三、 什么是Java虚拟机

    Java 虚拟机(JVM)是运行 Java 程序的软件环境,Java 解释器是 Java 虚拟机的一部分。

    在运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。

    这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。

    JVM 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的

    在这里插入图片描述

    Java 语言这种一次编写,到处运行的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。Java 程序通过 JVM 可以实现跨平台特性,但 JVM 是不跨平台的。

    这是为什么呢???

    简单点说就是不同操作系统之上的 JVM 是不同的,Windows 平台之上的 JVM 不能用在 Linux 平台,反之亦然。

  • 相关阅读:
    0905(047天 大数02 hadoop环境搭建)
    【计算机组成原理】海明校验码
    横板格斗类游戏实战:UI框架的制作
    《最新出炉》系列初窥篇-Python+Playwright自动化测试-34-处理https 安全问题或者非信任站点-下篇
    【网易云信】播放demo构建:无法将参数 1 从“AsyncModalRunner *”转换为“std::nullptr_t”**
    哈希表(一)
    基于复旦微JFM7K325T FPGA的高性能PCIe总线数据预处理载板(100%国产化)
    JVM之垃圾回收器
    [力扣146. LRU 缓存 ](https://leetcode.cn/problems/lru-cache/description/)
    如何使用 Python 中 Pandas 进行数据分析?
  • 原文地址:https://blog.csdn.net/qq_62259825/article/details/126167056
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号