2. 第一个 java 程序

空~2022年6月6日
  • java
大约 4 分钟

2. 第一个 java 程序

编写

编辑 Java 源代码可以使用任何无格式的文本编辑器,在 Windows 操作系统上可使用记事本(NotePad)、EditPlus 等程序。

注意

编写 Java 程序不要使用写字板,更不可使用 Word 等文档编辑器。因为写字板、Word 等工具是有格式的编辑器,当使用它们编辑一份文档时,这个文档中会包含一些隐藏的格式化字符,这些隐藏字符会导致程序无法正常编译、运行。

在记事本中新建一个文本文件,并在该文件中输入如下代码:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

必须注意的几个问题:

  1. Java 程序严格区分大小写。
  2. 程序格式的标点符号必须是英文。
  3. 拼写不能有任何错误。
  4. 文件名必须和类名一致。
  5. 文件后缀必须是 java

win11 显示文件后缀名方法:打开资源管理器、点击查看、显示、文件拓展名。

image-20220602202526556

将上面文本文件保存为 HelloWorld.java(必须是这个名字),该文件就是 Java 程序的源程序。

编写好 Java 程序的源代码后,接下来就应该编译该 Java 源文件来生成字节码了。

编译

先进入源代码存放路径,然后在路径内输入cmd后回车直接定位到本路径,免去了频繁切换路径的麻烦。

image-20220516213908114

在 cmd 中键入 javac HelloWorld.java 开始编译源码。

编译成功后cmd不会有任何提示。

image-20220516213926925

在文件夹中会出现编译完成后的 class 文件。

image-20220516214015803

运行

接着在 cmd 中键入 java HelloWorld 回车运行 class 文件,将会得到我们的第一个 java 程序,只有一句话。

image-20220516214036533

提示

新手常见错误:

  1. 没有区分大小写,Java 严格区分大小写。
  2. 单词拼错。
  3. 源码里面有错误的中文符号,java 程序中的中文符号只允许出现在 String 类型中。
  4. 源代码文件名与公共类名字不同。
  5. 拓展名不对。

运行已编译的程序时,Java 虚拟机将从指定类中的 main 方法开始执行,因此为了代码能够执行,在类的源文件中必须包含一个 main 方法。当然,也可以将用户自定义的方法添加到类中,并且在 main 方法中调用它们。

相关信息

根据 Java 语言规范,main 方法必须声明为 public(Java 语言规范是描述 Java 语言的官方文档。可以从网站:http://docs.oracle.com/javase/specsopen in new window 上阅读或下载)。

不过,当 main 方法不是 public 时,有些版本的 Java 解释器也可以执行 Java 应用程序。有个程序员报告了这个 bug。如果感兴趣的话,可以在网站:http://bugs.java.com/bugdatabase/index.jspopen in new window 上输入 bug 号码 4252539 查看。

这个 bug 被标明“关闭,不予修复。”Sun 公司的工程师解释说:Java 虚拟机规范(在 http://docs.oracle.com/javase/specs/jvms/se8/htmlopen in new window )并没有要求 main 方法一定是 public,并且“修复这个 bug 有可能带来其他的隐患”。

在 Java SE 1.4 及以后的版本中强制 main 方法是 public 的。

注意事项

需要注意源代码中的大括号{}。在 Java 中,用大括号划分程序的各个部分(通常称为块),每个代码块都是一个单独的作用域。Java 中任何方法的代码都用{开始,用}结束。

我们暂且不去理睬关键字 static void,而仅把它们当作编译 Java 应用程序必要的部分就行了。现在需要记住:每个 Java 应用程序都必须有一个 main 方法,其声明格式如下所示:

public class ClassName {
    public static void main(String[] args) {
        // program statements
    }
}

Java 程序是一种纯粹的面向对象的程序设计语言,因此 Java 程序必须以类(class)的形式存在,类(class)是 Java 程序的最小程序单位。

最简单的 Java 程序:最简单的 Java 程序是只包含一个空类定义的程序。

class Test {

}

使用 javac 命令来编译这个程序,这个程序可以通过编译,没有任何问题。

但如果使用 java 命令来运行上面的 Test 类,则会得到如下错误提示:

image-20220516214052669

上面的错误提示仅仅表明:这个类不能被 java 命令解释执行,并不表示这个类是错误的。

Java 解释器规定:如需某个类能被解释器直接解释执行,则这个类里必须包含 main 方法,而且 main 方法必须使用 public static void 来修饰,且 main 方法的形参必须是字符串数组类型(String[]args 是字符串数组的形式)。

main 方法的写法几乎是固定的。main 方法是 Java 程序的入口。