手写第一个 Java 程序执行过程解析
在上一篇详细介绍JDK8下载、安装和环境配置(适用于macOS和Windows)的文章之后,我们已经准备好Java开发环境了。现在让我们实践一下,通过编写一个简单的Java程序来输出“HelloWorld”。我们将分析从编码到运行的整个过程,了解究竟发生了什么。手动编写HelloWorld程序我们将使用最原始的方式——手写代码,直接在记事本中输入。对于Windows用户,可以直接使用记事本;macOS用户可以通过在终端中输入以下命令来打开文本编辑器:open-aTextEdit以下是输出“
在上一篇详细介绍JDK 8 下载、安装和环境配置(适用于macOS和Windows)的文章之后,我们已经准备好Java开发环境了。现在让我们实践一下,通过编写一个简单的Java程序来输出“Hello World”。
我们将分析从编码到运行的整个过程,了解究竟发生了什么。
手动编写 Hello World 程序
我们将使用最原始的方式——手写代码,直接在记事本中输入。
对于Windows用户,可以直接使用记事本;macOS用户可以通过在终端中输入以下命令来打开文本编辑器:
open -a TextEdit
以下是输出“Hello World”的简洁代码。请照着输入,不用担心每个代码的含义,稍后我们会详细解释。
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!!!");
}
}
将文件保存为HelloWorld.java,表示这是Java源代码文件。
编译源代码
Java文件只是源代码文件,无法直接执行。需要将其编译成字节码文件,即.class文件,才能运行。这个过程称为编译。
编译命令是javac,其中c是compile(编译)的首字母。

执行以下命令,HelloWorld.java文件将被编译,同目录下会生成HelloWorld.class文件。
javac HelloWorld.java

执行字节码文件
生成的.class文件包含main函数,代表程序的执行入口。这意味着我们的Hello World程序已经编写完成并可运行。
运行Java程序非常简单,只需使用java命令,并以类名作为参数:
java HelloWorld

此时,激动人心的时刻到了!我们会在控制台看到打印的“Hello, World!!!”,然后程序退出。

这意味着我们成功编写并运行了第一个Java应用程序!
源代码分析
现在让我们仔细看一下源代码,代码非常简洁:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!!!");
}
}这里有三个重要的Java关键字:public、class和static。
public是Java语法中的访问权限修饰符,类似于在社交媒体上发布内容的可见性设置。它有几个兄弟:protected(受保护的)、default(默认的)和private(私有的),它们决定了类、对象、方法和属性的访问范围。
在我们的代码中,public修饰了HelloWorld类和main方法,确保我们在执行程序时不会遇到权限问题。
class关键字表示这是一个普通类,它的兄弟还有interface(接口类)和enum(枚举类)。HelloWorld是我们为这个类取的名字,遵循命名规范,类名应由字母和数字组成,且首字母必须大写。花括号{}内的内容是类的定义。
static是静态修饰符,表示被修饰的内容可以直接被类引用,无需实例化。在这里,它修饰了main方法,允许HelloWorld类直接调用main方法。
void表示main方法没有返回值。圆括号内的String[] args是main方法的参数,表示一个字符串数组,用于在启动Java应用时传递参数。
方法定义的花括号{}内的代码以分号;结束。在这里,我们只有一行代码:
System.out.println("Hello, World!!!");System.out是Java提供的一个静态打印流对象,通过它可以进行打印操作。调用println方法会在控制台输出指定的信息。
执行路径分析

- 编译:使用JDK中的
javac命令将Java源代码编译成字节码,即.class文件。javac命令位于JDK安装目录的bin文件夹中。

执行:使用JRE中的
java命令执行.class文件时,字节码会被传输到JVM(Java虚拟机)。JVM将字节码与JRE中的库文件结合,生成特定硬件平台的机器码或指令集。运行:机器码被底层物理硬件平台执行。
通过这个过程,我们可以理解Java的“一次编写,到处运行”(Write Once, Run Anywhere)特性。不同硬件平台的指令集差异很大,需要JVM在不同操作系统上进行适配。正是JVM的不跨平台特性,实现了Java语言的跨平台特性。
例如,我们的HelloWorld源码在macOS上编译生成HelloWorld.class后,可以用java HelloWorld执行。如果将HelloWorld.class复制到Linux或Windows环境中,同样可以用java HelloWorld执行,得到相同的结果。

总结
通过实战编写并运行HelloWorld程序,我们学习了如何编写Java代码以及如何运行Java程序。同时,我们分析了源码中的关键语法和规范,并从源码到运行的执行路径,深入理解了Java的跨平台特性。
有了对Java的初步认识和感知,学习Java的其他概念和语法将会更加得心应手。
我是蜗牛,一名大厂程序员,专注于技术原创和个人成长,正在互联网上摸爬滚打。欢迎关注我,和蜗牛一起成长,我们一起牛~下期见!
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















