05. 【Java教程】第一个 Java 程序

简介: 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 程序能够顺利执行,请首先确认你已经完成了下面两件事情:

  1. 已经在你的电脑上成功安装 JDK
  2. 有一个文本编辑器。(如 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()方法代码:

1. public static void main(String[] args) {
2.         ...
3.     }

这段代码表示我们定义了一个入口方法,注意:入口方法是 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 的基础语法,随着知识的累积,你也将更加游刃有余地阅读、编写程序。

相关文章
|
4月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
137 2
|
2月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
328 98
|
4月前
|
Java 关系型数据库 数据库
Java 项目实战教程从基础到进阶实战案例分析详解
本文介绍了多个Java项目实战案例,涵盖企业级管理系统、电商平台、在线书店及新手小项目,结合Spring Boot、Spring Cloud、MyBatis等主流技术,通过实际应用场景帮助开发者掌握Java项目开发的核心技能,适合从基础到进阶的学习与实践。
520 3
|
3月前
|
安全 Java
Java之泛型使用教程
Java之泛型使用教程
256 10
|
2月前
|
Oracle Java 关系型数据库
Java 简单教程
Java是跨平台、面向对象的编程语言,广泛用于企业开发、Android应用等。本教程涵盖环境搭建、基础语法、流程控制、面向对象、集合与异常处理,助你快速入门并编写简单程序,为进一步深入学习打下坚实基础。
329 0
|
3月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
|
5月前
|
缓存 安全 Java
Java 并发新特性实战教程之核心特性详解与项目实战
本教程深入解析Java 8至Java 19并发编程新特性,涵盖CompletableFuture异步编程、StampedLock读写锁、Flow API响应式流、VarHandle内存访问及结构化并发等核心技术。结合电商订单处理、缓存系统、实时数据流、高性能计数器与用户资料聚合等实战案例,帮助开发者高效构建高并发、低延迟、易维护的Java应用。适合中高级Java开发者提升并发编程能力。
154 0
|
6月前
|
Oracle Java 关系型数据库
java 编程基础入门级超级完整版教程详解
这份文档是针对Java编程入门学习者的超级完整版教程,涵盖了从环境搭建到实际项目应用的全方位内容。首先介绍了Java的基本概念与开发环境配置方法,随后深入讲解了基础语法、控制流程、面向对象编程的核心思想,并配以具体代码示例。接着探讨了常用类库与API的应用,如字符串操作、集合框架及文件处理等。最后通过一个学生成绩管理系统的实例,帮助读者将理论知识应用于实践。此外,还提供了进阶学习建议,引导学员逐步掌握更复杂的Java技术。适合初学者系统性学习Java编程。资源地址:[点击访问](https://pan.quark.cn/s/14fcf913bae6)。
756 2
|
9月前
|
Java C语言
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
188 4