05. 【Java教程】第一个 Java 程序
本节我们将以Windows操作系统为例,编写并执行第一个Java程序。在这之前,请确保你的操作系统上已经安装了JDK
1. 编译程序
大家可能有个疑问,为什么需要编译程序呢?计算机不能直接执行我们编写的源代码吗?
这是由于计算机只能识别由0和1组成的二进制代码。需要通过编译将源代码转换为计算机认识的二进制代码。
1.1 Java 中的编译
在 Java 中,程序不是直接被编译为可执行文件,而是被编译为字节码文件, JVM(Java虚拟机)在运行时执行字节码文件。当我们使用 javac 编译器时,Java 源代码文件被编译为字节码文件,字节码文件以扩展名 .class 的形式保存在磁盘上。当程序运行时,字节码文件将被转换为机器代码,并在内存中执行。
总的来说,Java 源代码需要被“转换”两次才能被计算机执行:
- Java 源代码被编译为字节码:由 javac 前端编译器完成;
- 字节码被编译为机器码:由 JVM 的执行引擎完成。
下图描述了一个Java程序从编写到编译,再到执行的步骤:

1.2 快速执行一个程序
1.2.1 准备工作
为了确保我们人生中第一个 Java 程序能够顺利执行,请首先确认你已经完成了下面两件事情:
- 已经在你的电脑上成功安装
JDK; - 有一个文本编辑器。(如 Windows 的记事本,Unix 的 vim)。
1.2.2 编写源代码
新建一个文本,输入如下内容,将其命名为 HelloWorld.java并保存
实例演示
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!");}
}
Tips:
- 文件名必须与类名同名(类名就是上面第一行代码中
class后面的HelloWorld),并且扩展名为.java,文件名和类名都区分大小写,所以请确保文件名和类名大小写保持一致;- 类的命名约定以大写字母开头;
- 上述代码中的所有符号,请使用英文半角;
- 别忽略了代码第三行结尾的分号
;。
下面为实操中的截图。
打开记事本,输入源代码:

点击文件 -> 保存,将文件保存到磁盘(此处保存在桌面上),注意:这里要将文件名命名为HelloWorld.java,保存类型选择所有文件,编码选择UTF-8:

1.2.3 编译后执行
现在,打开你常用的命令行工具。(如 Windows 上的命令提示符、MacOS 上的终端),并进入你刚刚保存 Java 源代码的目录。
在Windows搜索栏中输入cmd即可打开:

使用cd命令,进入到我们刚刚保存源代码的目录(即进入到桌面目录cd Desktop),使用dir命令,查看目录下内容:

使用javac命令编译源代码:

执行编译命令后,你会发现同一目录下会生成一个HelloWorld.class文件,这个HelloWorld.class就是我们说的字节码文件。接下来就是通过 JVM 执行字节码文件了,输入下面的命令:
java HelloWorld
如果一切正常,你会看到屏幕上输出如下内容:

祝贺你!成功执行了第一个 Java 程序!
Tips:
javac是编译器,而java是虚拟机,先使用javac编译器编译源代码,再使用java虚拟机执行字节码文件。这就是我们上面提到的 java 源代码被转换两次到执行的过程。java命令后面的参数是类名。换句话说,我们只需要给虚拟机传递类名作为参数即可,虚拟机会自动查找对应的以.class为扩展名的文件并且执行。
2. 理解程序
我们现在对上面的 HelloWorld.java 代码进行解析:
public class HelloWorld {...
}
这段代码表示我们定义了一个公开类,类名为 HelloWorld,按照约定类名首字母要大写。
public 表示这个类是公开的(至于什么是公开的,我们后面再讲),class顾名思义,就是类, public 和 class都是 Java 中的关键字,必须小写。 花括号{} 中间为类的定义。
下面我们来看下花括号中间的 main()方法代码:
public static void main(String[] args) {...}
这段代码表示我们定义了一个入口方法,注意:入口方法是 Java 程序执行的起点。
public 和 static分别表示方法是公开的、静态的,void是方法的返回类型,main后面的括号() 用来将方法的参数括起来,String[]是参数的类型,args是参数的名称。
当然,刚刚对于代码的解释略显生涩,作为初学者无需深究每一项的含义。但有一个点请务必牢记:Java 规定,某个类定义的public static void main(String[] args)是Java程序的固定入口方法。
在方法内部,有一行代码:
System.out.println("Hello World!");
这行代码的意义就是将Hello World这一串字符打印在屏幕上。你可以尝试修改这块内容,将代码中的Hello World!,替换为其他内容,例如:
实例演示
public class HelloWorld {public static void main(String[] args) {System.out.println("我爱编程!");}
}
保存源代码,打开命令行,重新编译执行,屏幕上输出的内容将会被成功替换。
3. 小结
本小节我们一起完成了第一个 Java 程序的执行,在这个过程中,我们了解了编译相关的知识,知道了使用 javac命令,可以将一个.java扩展名的源代码文件编译成.class扩展名的字节码文件,使用 java 命令,可以执行字节码文件。我们也对程序的基础语法有了大致的了解。如果你对程序的理解还有困惑,也不必担心,在后面的章节中,我们将具体学习 Java 的基础语法,随着知识的累积,你也将更加游刃有余地阅读、编写程序。
相关文章:
05. 【Java教程】第一个 Java 程序
本节我们将以Windows操作系统为例,编写并执行第一个Java程序。在这之前,请确保你的操作系统上已经安装了JDK 1. 编译程序 大家可能有个疑问,为什么需要编译程序呢?计算机不能直接执行我们编写的源代码吗? 这是由于计…...
网易灵犀办公企业邮箱的IMAP和POP3服务器地址
IMAP 电子邮件地址:saleyouxiang.com 帐户类型:IMAP 接收邮件服务器:imaphz.qiye.163.com 发送邮件服务器:smtphz.qiye.163.com 用户名:saleyouxiang.comPOP3 电子邮件地址:saleyouxiang.com 帐户类型&…...
吴恩达深度学习笔记:优化算法 (Optimization algorithms)2.3-2.5
目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第二周:优化算法 (Optimization algorithms)2.3 指数加权平均数(Exponential…...
【正版系统】海外短剧系统功能介绍,前端uniapp+开源。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、海外短剧系统功能介绍 二、搭建要求 1.系统要求 总结 前言 短剧作为一种快速、紧凑的娱乐形式,正逐渐受到更多海外观众的喜爱。这种需求增长为…...
位图(c++)
文章目录 1.位图概念2.位图的实现3.应用(解决整形存在或次数问题)3.1存在问题3.2次数问题 5.搜索的方法对比: 1.位图概念 和哈希一样,都是一个表来记录某个元素的个数或者存在与否;不同的是哈希使用的计算机定义的完整…...
音源分离 | Hybrid Spectrogram and Waveform Source Separation
一、摘要 本文提出了基于Demucs架构的的时域频域的分离模型。提出的模型在2021年索尼组织的音乐分离挑战中获胜。该架构还包括其他改进,如压缩残差分支、局部注意力或奇异值正则化。 在MusDB HQ数据集上,所有源的信噪比(SDR)平均提…...
动态el-form表单以及动态禁用
当右侧下拉框选中为 长期有效,那么左侧输入框为禁用状态; <el-form-item label"证明有效期" class"is-required"><div v-for"(item,index) in form.arrayDat" :key"index" style"width: 100%;display: flex;justify-co…...
【Web后端】web后端开发简介_Servlet简介
1.web后端开发简介 Java企业级开发,也就是学习]avaEE(Enterprise Edition)版本,是一种结构和一套标准。在应用中开发的标准就是Servlet、jsp和JavaBean技术。jsp技术现在已基本处于淘汰状态,简单了解即可web后端开发,基于B/S模式的开发体系。…...
Taylor Francis科技期刊数据库文献去哪里获取
一、Taylor & Francis科技期刊数据库简介: Taylor & Francis 科技期刊数据库(T&F ST Library)提供超过520种经专家评审的高质量科学与技术类期刊, 其中超过85%的期刊被Web of Science收录,内容最早至1997年。该科技期…...
C#学习笔记12:Winform网页操作-CefSharp内嵌浏览器
今日学习使用Winform操作网页,先从从窗体内嵌一个浏览器开始吧: 文章提供测试代码讲解、测试效果图、整体测试工程下载 目录 CefSharp介绍与安装: 创建解决方案安装CefSharp: 控件放置: 整体代码贴出: 更改…...
NSSCTF | [SWPUCTF 2021 新生赛]babyrce
打开题目,显示了一个php脚本 我们来分析一下这个脚本是什么意思 <?php error_reporting(0); header("Content-Type:text/html;charsetutf-8"); highlight_file(__FILE__); if($_COOKIE[admin]1) {include "../next.php"; } elseecho &quo…...
环保不只是口号,绿葆自助取袋机助力1000多家医院环保行动!
2023年1月1日起,国家的“限塑令”范围进一步扩大,2023年6月20日起,《商务领域经营者使用、报告一次性塑料制品管理办法》开始实施。从国家到地方,对一次性塑料制品的污染问题治理正在越来越严格。为了响应国家环保政策并为患者提供…...
DELL服务器配置ILO(idrac)地址、修改管理员密码
服务器型号:DELL PowerEdge R630 1、重启服务器选择F2进入BIOS 2、重启服务器选择F2进入BIOS 3、选择“Network” 4、配置iDRAC的IP,掩码网关,DNS等信息 5、Esc返回,下滑选择“User Configuration” 6、配置iDRAC的用户名密码以及…...
如何打造个人IP?
打造个人IP(Intellectual Property)是当今社会中越来越受到关注的话题。个人IP指的是个人在某个领域内所拥有的独特的、具有商业价值的知识、技能、品牌和影响力。为什么要打造个人IP?如何打造个人IP?下面我将为您详细解答。 首先…...
【PostgreSQL支持中文的全文检索插件(zhparser)】
PostgreSQL本身是支持全文检索的,提供两个数据类型(tsvector,tsquery),并且通过动态检索自然语言文档的集合,定位到最匹配的查询结果。其内置的默认的分词解析器采用空格进行分词,但是因为中文的词语之间没…...
SHAP分析交互作用的功能,如果你用的模型是xgboost
SHAP分析交互作用的功能,如果你用的模型是xgboost 如果在SHAP分析中使用的是xgoost模型,就可以使用SHAP分析内置的交互作用分析,为分析变量间的相互提供了另外一个观察的视角。关于SHAP交互作用分析,一个参考资料,还是…...
瑞友科技质量改进服务事业部总经理张力受邀为第十三届中国PMO大会演讲嘉宾
全国PMO专业人士年度盛会 北京瑞友科技股份有限公司质量改进服务事业部总经理张力先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“PMO如何对接战略成为企业IT投资成功的有效保障”。大会将于6月29-30日在北京举办,敬请关注&#x…...
CVE-2024-4761 Chrome 的 JavaScript 引擎 V8 中的“越界写入”缺陷
分析 CVE-2024-4761 和 POC 代码 CVE-2024-4761 描述 CVE-2024-4761 是一个在 V8 引擎中发现的越界写漏洞,报告日期为 2024-05-09。这个漏洞可能允许攻击者通过特制的代码执行任意代码或者造成内存破坏,进而导致程序崩溃或其他不安全行为。 POC 代码解…...
字符串函数(二):strlen(求长度),strstr(查找子串),strtok(分割),strerror(打印错误信息)
字符串函数 一.strlen(求字符串长度)1.函数使用2.模拟实现(三种方法) 二.strstr(字符串查找子串)1.函数使用2.模拟实现 三.strtok(字符串分割)四.strerror,perror&#x…...
EUCR-30S电机保护器施耐德EOCR
EOCR主要产品有电子式电动机保护继电器,电子式过电流继电器,电子式欠电流继电器,电子式欠电压继电器,其它保护和监视装置,电流互感器。 电器密集型设计 ■ 二个集成组装电流互感器 ■ 欠载保护(空转保护…...
基于少样本学习和思维链提示的知识概念抽取方法研究
佘霖琳 熊龙洋 陆雪松(华东师范大学数据科学与工程学院,上海 200062)摘 要 知识概念抽取在教育、医疗、金融领域均有重要的应用价值。知识概念抽取属于命名实体识别的一个细分任务,但是由于缺乏数据集和知识概念实体类型的特殊性&…...
向量库+RAG+大模型在医疗AI中为何常显不足?揭秘图谱如何重塑医疗知识系统信任度!
文章指出,在医疗AI领域,单纯依赖向量库RAG大模型的经典路线已显不足。医疗场景对知识系统的要求远超“语义相似度”,涉及适应症、禁忌症、证据等级等严格约束。知识图谱在医疗AI中的重要性日益凸显,它不仅能够构建知识间的关系网络…...
天赐范式第49天:算不算是意外流落于人间的女娲补天石文件,女娲一直做开源项目,直到知道自己要发布论文引用不能来自CSDN个人博客,因为没有得到神农评议,要先写论文自证算子和公式,所以就把补天石文件丢了
天赐范式:兄弟,你说说我发给你这部分,算不算是意外流落于人间的女娲补天石文件伙伴:评析ZFC-CH对偶性与CFD隐喻(补天石文件附在文尾)..兄弟,你这文件要是女娲补天石,那女娲当年补的可…...
3分钟学会:用WinDiskWriter轻松为老旧电脑安装Windows 11系统
3分钟学会:用WinDiskWriter轻松为老旧电脑安装Windows 11系统 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & L…...
如何在GTA5在线模式中保护自己?YimMenu安全增强菜单完整指南
如何在GTA5在线模式中保护自己?YimMenu安全增强菜单完整指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/y…...
如何突破Switch游戏限制:Ryujinx开源模拟器的5大实战解决方案
如何突破Switch游戏限制:Ryujinx开源模拟器的5大实战解决方案 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 你是否渴望在PC上畅玩Switch独占游戏,却受限于硬件…...
3分钟掌握AI图像分层:从单张图片到专业PSD的智能转换
3分钟掌握AI图像分层:从单张图片到专业PSD的智能转换 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾经面对一张精美的插画ÿ…...
Aimmy AI瞄准辅助终极指南:从零开始到游戏高手
Aimmy AI瞄准辅助终极指南:从零开始到游戏高手 【免费下载链接】Aimmy Universal Second Eye for Gamers with Impairments (Universal AI Aim Aligner (AI Aimbot) - ONNX/YOLOv8 - C#) 项目地址: https://gitcode.com/gh_mirrors/ai/Aimmy Aimmy是一款基于…...
无人机带多传感器就死机、数据不同步?做了 17 年工业主机研发,教你解决多设备协同的核心痛点
做了 17 年工业主机研发,我发现一个特别有意思的现象:很多客户的无人机,只带一个普通摄像头的时候,飞得稳稳当当,什么毛病都没有。但一旦加上激光雷达、毫米波雷达、热成像相机、多光谱相机这些传感器,就开…...
强烈推荐!这款顶伯 工具拯救了我的日更视频账号
强烈推荐!这款顶伯 TTS 工具拯救了我的日更视频账号做日更视频账号最痛苦的是什么?是配音。 以前我每天花两小时录音、降噪、剪辑,嗓子还经常哑。直到用了顶伯文字转语音工具,一切都变了。它基于微软 TTS 技术,音质自然…...
