手写的第一个 Java 应用程序,执行的时候发生了什么?

絕刀狂花
发布: 2025-09-15 09:01:23
原创
393人浏览过

在上一篇详细介绍jdk 8 下载、安装和环境配置(适用于macos和windows)的文章之后,我们已经准备好java开发环境了。现在让我们实践一下,通过编写一个简单的java程序来输出“hello world”。

我们将分析从编码到运行的整个过程,了解究竟发生了什么。

手动编写 Hello World 程序

我们将使用最原始的方式——手写代码,直接在记事本中输入。

对于Windows用户,可以直接使用记事本;macOS用户可以通过在终端中输入以下命令来打开文本编辑器:

open -a TextEdit
登录后复制

以下是输出“Hello World”的简洁代码。请照着输入,不用担心每个代码的含义,稍后我们会详细解释。

立即学习Java免费学习笔记(深入)”;

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello, World!!!");
    }
}
登录后复制

手写的第一个 Java 应用程序,执行的时候发生了什么?

将文件保存为

HelloWorld.java
登录后复制
,表示这是Java源代码文件。

编译源代码

Java文件只是源代码文件,无法直接执行。需要将其编译成字节码文件,即

.class
登录后复制
文件,才能运行。这个过程称为编译。

编译命令是

javac
登录后复制
,其中
c
登录后复制
compile
登录后复制
(编译)的首字母。

手写的第一个 Java 应用程序,执行的时候发生了什么?

执行以下命令,

HelloWorld.java
登录后复制
文件将被编译,同目录下会生成
HelloWorld.class
登录后复制
文件。

javac HelloWorld.java
登录后复制

手写的第一个 Java 应用程序,执行的时候发生了什么?

执行字节码文件

生成的

.class
登录后复制
文件包含
main
登录后复制
函数,代表程序的执行入口。这意味着我们的Hello World程序已经编写完成并可运行。

运行Java程序非常简单,只需使用

java
登录后复制
命令,并以类名作为参数:

java HelloWorld
登录后复制

手写的第一个 Java 应用程序,执行的时候发生了什么?

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

手写的第一个 Java 应用程序,执行的时候发生了什么?

这意味着我们成功编写并运行了第一个Java应用程序!

源代码分析

现在让我们仔细看一下源代码,代码非常简洁:

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello, World!!!");
    }
}
登录后复制

这里有三个重要的Java关键字:

public
登录后复制
class
登录后复制
static
登录后复制

AppMall应用商店
AppMall应用商店

AI应用商店,提供即时交付、按需付费的人工智能应用服务

AppMall应用商店56
查看详情 AppMall应用商店

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
登录后复制
方法会在控制台输出指定的信息。

执行路径分析

手写的第一个 Java 应用程序,执行的时候发生了什么?

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

手写的第一个 Java 应用程序,执行的时候发生了什么?

  1. 执行:使用JRE中的

    java
    登录后复制
    命令执行
    .class
    登录后复制
    文件时,字节码会被传输到JVM(Java虚拟机)。JVM将字节码与JRE中的库文件结合,生成特定硬件平台的机器码或指令集。

  2. 运行:机器码被底层物理硬件平台执行。

通过这个过程,我们可以理解Java的“一次编写,到处运行”(Write Once, Run Anywhere)特性。不同硬件平台的指令集差异很大,需要JVM在不同操作系统上进行适配。正是JVM的不跨平台特性,实现了Java语言的跨平台特性。

例如,我们的

HelloWorld
登录后复制
源码在macOS上编译生成
HelloWorld.class
登录后复制
后,可以用
java HelloWorld
登录后复制
执行。如果将
HelloWorld.class
登录后复制
复制到Linux或Windows环境中,同样可以用
java HelloWorld
登录后复制
执行,得到相同的结果。

手写的第一个 Java 应用程序,执行的时候发生了什么?

总结

通过实战编写并运行HelloWorld程序,我们学习了如何编写Java代码以及如何运行Java程序。同时,我们分析了源码中的关键语法和规范,并从源码到运行的执行路径,深入理解了Java的跨平台特性。

有了对Java的初步认识和感知,学习Java的其他概念和语法将会更加得心应手。


我是蜗牛,一名大厂程序员,专注于技术原创和个人成长,正在互联网上摸爬滚打。欢迎关注我,和蜗牛一起成长,我们一起牛~下期见!

以上就是手写的第一个 Java 应用程序,执行的时候发生了什么?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号