0

0

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

絕刀狂花

絕刀狂花

发布时间:2025-09-15 09:01:23

|

402人浏览过

|

来源于php中文网

原创

在上一篇详细介绍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应用程序!

源代码分析

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

E6Mall 商城系统(网店系统)
E6Mall 商城系统(网店系统)

E6Mall是铱王星科技公司推出的一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于Java语言及Hibernate、Spring、Struts2构架开发的跨平台开源程序。 E6Mall注重购物安全,从系统基础平台构建到应用设计,不断提高购物安全性。由于是Java语言开发,同时也继承了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
方法会在控制台输出指定的信息。

执行路径分析

手写的第一个 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的其他概念和语法将会更加得心应手。


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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

443

2023.08.02

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

298

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1500

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

623

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

613

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

588

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

170

2025.07.29

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.9万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.9万人学习

NumPy 教程
NumPy 教程

共44课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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