Java程序的运行过程(执行流程)分析

三种方式运行Java程序,jdk(命令行),IDEA ,notepad++ 下载jdk并配置系统环境变量,使用命令行窗口运行Java程序; 在高级记事本notepad++中下载插件,运行Java程序; 使用IDEA集成开发环境编写和运行Java程序,便捷高效。 阅读详情

  万事知其然,要知其所以然,所以本篇带大家来详细了解一下 Java 程序的执行过程。

Java 程序的运行必须经过编写、编译和运行 3 个步骤。

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

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

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

  Java 程序运行流程如图 1 所示。

  图 1 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 的这种运行机制可以通过图 2 来说明。

  图 2 JVM工作方式

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

  提示:Java 程序通过 JVM 可以实现跨平台特性,但 JVM 是不跨平台的。也就是说,不同操作系统之上的 JVM 是不同的,Windows 平台之上的 JVM 不能用在 Linux 平台,反之亦然。

推荐学习视频课程:

Java基础视频教程_java从入门到精通_java300集新手必看教程

【尚学堂】Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程_Java语言入门到精通

【深入理解JVM 一】一个Java程序的执行流程 本篇是《深入理解JVM》系列博客的第一篇,旨在全局把控,先对整体流程有个认识,然后再分阶段详解。程序从编写到执行整体可以划分为以下几个步骤:编辑源码->编译生成class文件、(加载class文件、运行class字节码文件),其中后两个步骤都是在jvm虚拟机上执行的,整体的执行流程如下: 编辑生成源代码 编辑源代码是经历的第一个环节,编辑源代码,就是我们在任何一个工具上编写源代码,可以是记事本,也可以是IDE,这部分相当于我们在IDEA上 新建一个.java的Class 然后写内容,这里我们创建几个 阅读详情

相关推荐

手把手用LTspice仿真运算放大器电路:从虚短虚断到频响分析

本文通过LTspice仿真软件,手把手教你从搭建基础运算放大器电路开始,验证虚短虚断原理,并逐步深入频响分析与稳定性探究。内容涵盖反相/同相放大器、积分器仿真,导入真实运放模型进行蒙特卡洛分析,以及利用交流分析和波特图评估电路性能,帮助工程师和学生将抽象理论转化为直观、可测量的仿真结果,提升电路设计实战能力。

salt9的博客 1094

java项目如何运行

一、项目运行步骤,一般为以下3步骤(必读): (1)、创建数据库,导入数据库脚本 (2)、开发工具导入源码,更改源码内的数据库链接,确保是正确的用户名和密码 (3)、开发工具运行(tomcat或者springboot方式,根据源码所决定) 常见问题解决视频: 链接:https://pan.baidu.com/s/1N7upBxYxCK-y-4m31uv23g 提取码:1234 二、开发工具怎么导入项目? 1、eclipse 导入普通项目 https://jingyan.baidu.co

xingyuan2010000的专栏 2万+

时间卷积网络(TCN):结构+pytorch代码

文章目录TCNTCN结构1-D FCN的结构因果卷积(Causal Convolutions)膨胀因果卷积(Dilated Causal Convolutions)膨胀非因果卷积(Dilated Non-Causal Convolutions)残差块结构pytorch代码讲解 TCN   TCN(Temporal Convolutional Network)是由Shaojie Bai et al....

Leon_winter的博客 11万+

IDEA运行第一个Java简单程序(新建项目到运行类)

在刚开始学习Java中,会遇到许多的问题,分不清类和包,对象方法这些概念,很多名称都是一个概念而已,真正去运用多测试写几遍就会悟出来,一直想是属于空想了,代码必须要真正的去敲,去行动。本篇文章就是给刚学习Java的小伙伴建立一个结构性的思维。常用的软件就是IDEA,还要有能够让我们的Java程序去运行的环境--KDK,这些环境就是Java虚拟机啊这些。,然后在类里面去写上main方法,再在main方法里面去写自己要写的代码就好了,没有main方法,这个类就运行不起来的。点击bao这个包,右键--新建--类。

快乐学习 2万+

从高德、百度地图下载POI数据?用这个工具5分钟搞定GCJ02/BD09到WGS84的坐标纠偏

本文详细解析了高德、百度地图POI数据坐标偏移问题,并提供了从GCJ02/BD09到WGS84的高效转换方案。通过开源工具如coordtransform和ArcGIS等专业软件,实现毫米级精度的坐标纠偏,适用于商业选址、GIS分析等场景,显著提升数据准确性和工作效率。

weixin_26789847的博客 449

SAP OBYC自动过账全解析:从BSX到WRX的会计科目配置指南

本文深入解析SAP OBYC自动过账功能,从BSX到WRX的会计科目配置全流程,涵盖评估分组代码、事务码和评估类等核心概念。通过实战案例展示如何实现库存变动到财务过账的自动化流转,提升企业财务数据的准确性和效率。

weixin_29239279的博客 418

Java程序的编译、运行过程(执行流程)分析

java程序的执行过程。 Java 程序的运行必须经过编写、编译和运行 3 个步骤。 编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。 编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。 运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。 Java 程序运行流程如图 1 所示。 图 1 Java程序运行流程 ...

编程哲学家的专栏 1796

eDP、DP与HDMI——现代显示接口的核心解析

eDP、DP和HDMI各有千秋:eDP以嵌入式设备的低功耗见长,DP凭借开放生态和高带宽成为专业领域首选,而HDMI则依靠庞大的消费电子生态稳居家庭市场。未来,随着Type-C接口的普及和超高清内容的爆发,三者的技术边界可能进一步融合,但各自的核心优势仍将长期共存。对于用户而言,选择接口需基于设备需求——游戏玩家青睐HDMI的VRR,设计师依赖DP的多屏扩展,而轻薄本则离不开eDP的紧凑设计。

麟的博客 8411

java语言执行过程_Java程序的运行过程(执行流程)分析

万事知其然,要知其所以然,所以本节带大家来详细了解一下Java程序的执行过程。从《使用记事本编写运行Java程序》一节的案例可以看出,Java 程序的运行必须经过编写、编译和运行 3 个步骤。编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的...

weixin_39595621的博客 504

【软件系统架构】系列六: SysML(系统建模语言)

SysML(系统建模语言)是OMG组织基于UML扩展的专用建模语言,用于支持复杂系统全生命周期建模。它包含9类标准图,核心建模元素包括块(Block)、端口接口、需求和约束等。与UML相比,SysML更适用于软硬件结合的复杂系统建模。作为MBSE的核心工具,SysML通过结构图、行为图、需求图和参数图实现系统设计、需求追踪和性能验证。虽然面临学习门槛高、工具成本高等挑战,但随着AI融合和国产化替代趋势,SysML在航空航天、汽车电子等领域的应用日益广泛。SysML v2将简化语法并提升互操作性,推动系统工程

moton2017的博客 2385

ollama使用CPU安装qwen-coder模型_并在eclipse中使用ai coder插件_配置本地qwen-coder模型_ollama常用操作记录---AI大模型应用探索0002

文章摘要:作者分享了在Windows 10上安装和使用Ollama模型的过程。尝试了不同规模的qwen-coder模型(7b、1.5b和0.5b),发现7b模型响应极慢(需35分钟),而1.5b模型表现较好(3秒响应)。最终选择1.5b版本用于代码开发辅助,支持多语言自动补全。同时提到在最新版Eclipse中的AIcoder配置问题。文章重点比较了不同模型规模在CPU环境下的实际使用体验和响应速度差异。

添柴程序猿的专栏 683

Java教程:Java程序的运行过程(执行流程)分析

Java教程万事知其然,要知其所以然,所以本节带大家来详细了解一下 Java 程序的执行过程。 本篇文章由泉州SEOwww.234yp.com 整理发布,Java教程www.234yp.com/Article/198123.html谢谢合作! 从《使用记事本编写运行Java程序》一节的案例可以看出,Java 程序的运行必须经过编写、编译和运行 3 个步骤。 编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。 编译:是指使用 Java 编译器...

Zzz9158的博客 310

【32】C# WinForm入门到精通 ——打开文件OpenFileDialog 【属性、方法、事件、实例、源码】

本文介绍了WinForm开发中OpenFileDialog控件的关键属性及其应用。OpenFileDialog是.NET Framework提供的文件对话框控件,主要用于选择、打开文件操作。文章详细讲解了11个核心属性:AddExtension(自动补全扩展名)、AutoUpgradeEnabled(外观升级)、CheckFileExists/CheckPathExists(文件/路径存在验证)、DefaultExt(默认扩展名)、DereferenceLinks(解析快捷方式)、FileName/File

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1534

纯干货!Java程序的运行过程(执行流程)分析,来看

这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。Java 的这种运行机制可以通过图 2 来说明。Java 语言这种“一次编写,到处运行”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。

meitianxue的博客 341

CH340串口驱动-CH340 串口驱动最新版

CH340串口驱动,适用于经典USB转串口芯片CH340和CH341,支持32/64位Windows 11/10/8.1/8/7/VISTA/XP系统.

华为光猫HN8346X6补全 shell固件

HN8346X6 恢复华为登陆页面运营商: 中国联通设备型号: WO-36描述: OptiXstar HN8346X6 Asymmetric 10G EPON Terminal (PRX/PRODUCT ID:2150084496LDMA041849)软件版本: V5R021C00S130制造信息: 2150084496LDMA041849.CC02ONT注册状态: 未注册,未授权。联通设备标识: 01FFFFFFFF011FFF19C0BC9AD75B5074

Java程序 的运行过程(执行流程)分析

Java程序必须经过 编写、编译、运行3个步骤 1.编写:是指在 Java开发环境中 进行程序代码的输入,最终形成 后缀名为 .java 的 Java 源文件 2.编译:是指使用 Java 编译器对 源文件进行错误排查的过程 编译后生成.class的字节文件,不行 C语言一样 生成可执行文件 3.运行:java 解析器 将 字节码文件翻译成机器代码 ,执行显示结果 Java 虚拟机(JVM) 啥是JVM? 是运行Java程序的软件环境 ...

weixin_46051617的博客 328

java项目之法律援助与咨询系统(完整前后端+说明文档+mysql).zip

前台模块:站内新闻:发布与法律相关的新闻和动态。申请援助:用户可以在线申请法律援助。在线留言:用户可以在线提交留言或咨询。用户注册:允许新用户注册成为网站的会员。系统公告:发布系统相关的公告信息。管理员模块:系统用户管理:管理系统用户的账户信息。用户信息:管理用户的个人信息。法律咨询管理:管理法律咨询的内容和回复。站内新闻管理:管理网站新闻内容的发布和更新。援助管理:管理法律援助的申请和处理。系统管理和系统公告管理:管理系统的设置和公告。注册用户模块:用户资料修改:注册用户可以修改自己的个人信息。我的援助申请:用户可以查看和管理自己的法律援助申请。环境说明:开发语言:Java,jspJDK版本:JDK1.8数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/idea部署容器:tomcat

java 无法执行二进制文件_Java程序的运行过程(执行流程)分析

Java 程序的运行必须经过编写、编译和运行 3 个步骤。编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。Java 程序运行流...

weixin_39677106的博客 1550

公考2000-2023国考行测文档P-D-F含解析

公考2000-2023国考行测文档P-D-F含解析提取方式是百度网盘分享地址

Java编程规范(命名规则),Java程序的运行过程(执行流程)分析

这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。Java 语言这种“一次编写,到处运行”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。多个参数之间的逗号和前一个参数紧靠,与后一个参数空一格。

weixin_42673574的博客 400

Java程序执行流程和JVM回收算法

系列文章目录 Java 程序执行流程&JVM 回收算法系列文章目录前言一、Java 执行流程?二、使用步骤1.编译2.运行总结 前言 Java 的执行流程和JVM执行的算法是常见的面试题。我们应该进行教科书的Answer. 一、Java 执行流程? Java执行流程主要是利用程序委派机制完成 二、使用步骤 1.编译 Java 主要分为编译和运行2个阶段。 ja java 源码分析器完成 点击complie ,主要进行编译。 类加载机制: 类加载机制 类执行机制 Java源码编译机制 类加载机

专注Java(全栈)应用开发,求知若渴,虚心若愚,talk is cheap, show me the code. 205

Java虚拟机如何运行Java字节码?

前言: 作为一个java程序员,应该要知道一段代码是如何在jvm里运行的,所以今天这篇文章就讲解下java程序运行原理分析。 正文: 一、Java的class文件的内容 1.首先编写一个简单的代码 public class StringDemo { public static void main(String[] args) { String s=new Stri...

jdk_wangtaida的博客 5192

java学习一-java程序运行过程

Java程序的运行是一个从源代码到机器指令的转换过程,涉及编写、编译、加载、验证和执行五个步骤。每个步骤都至关重要,确保了Java程序的跨平台性和高效运行。

weixin_38383877的博客 817

scala语言的底层是java实现的_Scala学习笔记一(与Java、Jvm的关系以及程序执行流程分析)...

一、Scala语言与Java、Jvm的关系分析Scala语言是马丁奥德斯基接触Java语言后,针对Java语言的特点,将函数式编程语言的特点融合到Java中,由此发明的。Scala语言和Java语言的;联系是十分紧密的。现在主流的JVM的Javac编译器就是马丁奥德斯基编写的,包括JDK1.5和JDK1.8。那么Scala和Java以及JVM之间有什么样的联系呢?我们来分析一下,如下图所示:可以看...

weixin_39922868的博客 476
上一篇: Java中JVM、JRE和JDK三者有什么区别和联系?
下一篇: Java编程规范(命名规则)
java_500
博客等级 码龄5年 12粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值