Java——执行流程

一、执行流程

1、示例

//第一个Java程序
public class Hello{public static void main(String[] args){System.out.println("Hello World!");}
}

编译:

执行:

我们可以看到这里的是类名,而不是字节码文件名 Hello.class ,这是因为对于java 命令是用于启动 Java 虚拟机(JVM)并执行编译后的 Java 应用程序的,Java 虚拟机(JVM)在运行时期待的是一个类的名称,而不是文件名或文件路径。

运行结果:

2、编译

使用 javac 工具将 java 源文件编译成 JVM 可以识别的字节码文件,即为 .class 文件。

如果源文件中没有错误,最终编译完成会出现一个 Hello.class 文件。

上面的指令时在 Hello.java 文件所在的目录下使用的,如果不是在源文件的目录下,要加上具体路径。使用 javac 可以直接在源文件上加上路径:

如果使用java指令的话,要配合 -classpath 选项来指定类的路径,或者使用 -cp 作为 -classpath 的简写:

也可以在系统环境变量中设置 CLASSPATH 环境变量,这样 Java 类加载器如果在当前的路径下找不到,则使用系统变量中的路径来查找类文件。

3、执行

我们通过使用 java 这个指令运行 Hello.class 文件,它的本质就是 java.exe 将这个字节码文件装载在 JVM 中执行。

当我们对源文件更改之后,需要再次编译,才能使 .class 文件更新,然后再运行,才能使执行后的结果更新。

二、一些知识点

1、每个源文件中只能有一个 public 类

Java 中每个源文件中只能有一个 public 类,而且这个 public 类的类名必须和源文件文件名相同,也就是说,如果你的一个源文件中的 public 类的类名为 Hello ,那你的源文件名就要是Hello.java。

其他的非 public 类个数不限。

2、对一个 Java 源文件编译,会产生一个对应的 .class 文件

在对一个 Java 源文件编译时,每一个类都会产生一个对应的 .class 文件。

//第一个Java程序
public class Hello{public static void main(String[] args){System.out.println("Hello World!");}
}//非public类
class Dog {}//非public类
class Tiger {}

当我们对以上的代码进行编译后,会发现产生了对应的 .class 文件:

3、可以将 main 方法放到非 public 类中

我们还可以将 main 方法放到非 public 类中,然后指定运行这个非 public 类,这样入口方法就变成了非 public 类的 main 方法。

//第一个Java程序
public class Hello{public static void main(String[] args){System.out.println("Hello World!");}
}//非public类
class Dog {public static void main(String[] args) {System.out.println("This is Dog.");}
}//非public类
class Tiger {public static void main(String[] args) {System.out.println("This is Tiger.");}
}

我们可以对上面的代码编译后,然后指定运行特定的类:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过 coze 快速构建自己的智能体机器人

通过 coze 快速构建自己的智能体机器人 coze 的使用 一)coze 是什么 「Coze 扣子」AI Bot 开发平台。任何用户都可以快速、低门槛地搭建自己的 Chatbot,且平台支持用户将其一键发布到飞书、微信公众号、豆包等渠道。 二)coze 怎么注册 1. …

【网络层】ICMP 因特网控制协议

文章目录 ICMP 含义以及作用ICMP协议解析结合ICMP协议和ping常见问题 ICMP 含义以及作用 ICMP:Internet control massage protocol 因特网控制协议 Internet控制报文协议ICMP是网络层的一个重要协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,…

QT6.2.4 MSVC2019 连接MySql5.7数据库,无驱动问题

1.下载 查询一下数据库驱动 qDebug()<<QSqlDatabase::drivers(); 结果显示&#xff0c;没有QMYSQL的驱动。 QList("QSQLITE", "QMARIADB", "QODBC", "QPSQL") MySql6.2.4驱动下载地址&#xff0c;如果是别的版本&#xff0c;…

用易查分制作研学活动报名,支持在线签名,一键导出报名统计表格!

学校组织研学活动时&#xff0c;需要家长扫码在线填写报名信息&#xff0c;确认安全承诺和手写签名&#xff0c;提交报名后希望分配报名号&#xff0c;应该如何实现&#xff1f; 易查分的新建填表功能就可以实现上述需求&#xff0c;下面就来教大家如何制作吧。 &#x1f4cc;使…

【LORA协议栈】工作记录

一、硬件资源 MCU型号&#xff1a;STM32F401xE。Lora芯片&#xff1a;SX1276。硬件看门狗。ATT7022E三相电能专用计量芯片。 二、功能简介 作为一个组件&#xff0c;通过485与网关或者各种子设备连接在一起。支持boot升级。通过SPI与LORA芯片通信。接收和发送数据。有3路通信…

Java设计模式-活动对象与访问者

活动对象 Java设计模式中&#xff0c;活动对象是指一个对象始终处于活动的状态&#xff0c;该对象包括一个线程安全的数据结构以及一个活跃的执行线程。 如上所示&#xff0c;ActiveCreature类的构造函数初始化一个线程安全的数据结构&#xff08;阻塞队列&#xff09;、初始化…

Mac | Mac M 芯片应用意外退出问题

现象问题 电脑配置&#xff1a;MacBook Pro M1&#xff0c;系统 Sonoma 很多小伙伴新买了 M 芯片的 MacBook&#xff0c;在下载下应用后进行安装&#xff0c;安装成功后却无法打开&#xff0c;提示意外退出。报错如图 原因 部分应用过适配了 M 芯片&#xff0c;但还是有些应…

乡村振兴与农业科技创新:加大农业科技研发投入,推动农业科技创新,促进农业现代化和美丽乡村建设

一、引言 在当代中国&#xff0c;乡村振兴已成为国家发展的重要战略之一。作为国民经济的基础&#xff0c;农业的发展直接关系到国家的稳定和人民的福祉。随着科技的不断进步&#xff0c;农业科技创新在推动农业现代化和美丽乡村建设中发挥着越来越重要的作用。本文旨在探讨如…

TPK系列——2W 3KVDC 隔离单,双输出 DC/DC 电源模块

TPK系列是一款2W并且有高隔离电压要求的理想产品&#xff0c;工业级温度范围–40℃到 105℃&#xff0c;在此温度范围内都可以稳定输出2W&#xff0c;并且效率非常高&#xff0c;高达89%&#xff0c;同时负载调整率非常低&#xff0c;对于有输出电压精度有要求的地方特别合适&a…

桌面上怎么记工作任务更加合理?能设置桌面提醒的便签软件

在快节奏的现代工作中&#xff0c;电脑已成为我们处理工作的主要工具。每天&#xff0c;我们都要面对电脑屏幕&#xff0c;处理大量的工作任务。为了更好地管理这些琐碎却重要的工作&#xff0c;将工作任务直接记录在桌面上&#xff0c;随时查看和调整&#xff0c;无疑是一种高…

北斗有源终端如何助力防灾应急通信

在自然灾害的严峻挑战面前&#xff0c;通信技术的可靠性成为了决定救援成功与否的关键。北斗有源终端作为先进的卫星通信工具&#xff0c;以其独特的优势和功能&#xff0c;正逐渐在防灾应急通信领域展现出其不可或缺的作用。通过其高精度的定位、稳定的信号传输和广泛的应用场…

如何利用Firebase Hosting来托管网站

文章目录 如何利用Firebase Hosting来托管网站前提条件详细步骤1. 安装 Firebase CLI2. 登录 Firebase3. 初始化 Firebase 项目4. 准备网站文件5. 部署到 Firebase6. 配置自定义域名&#xff08;可选&#xff09; 常见问题 如何利用Firebase Hosting来托管网站 以下是更详细的…

易备数据备份软件:快速恢复 VMware ESXi 虚拟机

易备数据备份软件为 VMware ESXi 虚拟机提供完整的保护和备份功能。软件同时支持从 ESXi 或 vCenter 虚拟机的增量和差异备份中进行自动恢复。支持精细化的恢复&#xff0c;可将虚拟机恢复到某个特定的日期。 通过易备数据备份软件&#xff0c;可以实现虚拟机的异机恢复&#…

windows环境redis未授权利用手法总结

Redis未授权产生原因 1.redis绑定在0.0.0.0:6379默认端口&#xff0c;直接暴露在公网&#xff0c;无防火墙进行来源信任防护。 2.没有设置密码认证&#xff0c;可以免密远程登录redis服务 漏洞危害 1.信息泄露&#xff0c;攻击者可以恶意执行flushall清空数据 2.可以通过ev…

4-Django项目--资产管理

目录 项目结构 asset_data.html asset_data/add_modify.html views/asset_data.py ------资产管理-------- 资产信息展示 views/asset_data.py 添加资产信息 添加和编辑的html可参考学员信息添加修改html views/asset_data.py 修改信息资产 views/asset_data.py 项…

如何为 kNN 搜索选择最佳 k 和 num_candidates

作者&#xff1a;Madhusudhan Konda 如何选择最好的 k 和 num_candidates&#xff1f; 向量搜索在当前的生成式人工智能/机器学习领域中已经成为一个改变游戏规则的技术。它允许我们基于语义含义而不仅仅是精确的关键词匹配来找到相似的项目。 Elasticsearch的 k-近邻&#x…

wxPython应用开发-后台线程更新大量数据到wxGrid避免ui无响应

一、问题描述 最近几天&#xff0c;我在用python开发一个数据处理的小工具。需要将xls文件中的大量数据&#xff08;少则几千行多则几万行&#xff09;读取出来后进行处理。其中一个功能是需要实现将读取到的原始数据和计算出来的结果在软件界面中以表格形式展示出来。 在pyt…

非线性优化:高斯-牛顿法的原理与实现

非线性优化&#xff1a;高斯-牛顿法的原理与实现 引言 在实际应用中&#xff0c;很多问题都是非线性的。非线性优化问题广泛应用于机器学习、数据拟合、工程设计等领域。高斯-牛顿法是一种常用于解决非线性最小二乘问题的迭代算法。本文将详细介绍高斯-牛顿法的原理、推导过程…

搜维尔科技:Movella Xsens用于动画,CG,短视频制作案例

用户名称 广州百漫文化传播有限公司 应用场景 基于Xsens MVN Link 动作捕捉系统的动画制作、CG制作、短视频制作、快速动画MAYA插件、影视动漫实时合成预渲染。 现场照片 《西行纪》内容简介&#xff1a;在远古神明的年代&#xff0c;世间存在着天众、龙众、阿修罗等八部众…

shell中编写备份数据库脚本(使用mysqldump工具)

mysqldump备份 目录 mysqldump备份 分库备份 分表备份 利用自带工具mysqldump 实现数据库分库分表备份。 要想知道需要备份哪些数据库&#xff0c;就得先列出来 mysql -uroot -pOpenlab123! -N -e show databases | egrep -on_schema|mysql|performance_schema|sys" …