2. 第一个 java 程序
2. 第一个 java 程序
编写
编辑 Java 源代码可以使用任何无格式的文本编辑器,在 Windows 操作系统上可使用记事本(NotePad)、EditPlus 等程序。
注意
编写 Java 程序不要使用写字板,更不可使用 Word 等文档编辑器。因为写字板、Word 等工具是有格式的编辑器,当使用它们编辑一份文档时,这个文档中会包含一些隐藏的格式化字符,这些隐藏字符会导致程序无法正常编译、运行。
在记事本中新建一个文本文件,并在该文件中输入如下代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
必须注意的几个问题:
- Java 程序严格区分大小写。
- 程序格式的标点符号必须是英文。
- 拼写不能有任何错误。
- 文件名必须和类名一致。
- 文件后缀必须是 java
win11 显示文件后缀名方法:打开资源管理器、点击查看、显示、文件拓展名。
将上面文本文件保存为 HelloWorld.java(必须是这个名字),该文件就是 Java 程序的源程序。
编写好 Java 程序的源代码后,接下来就应该编译该 Java 源文件来生成字节码了。
编译
先进入源代码存放路径,然后在路径内输入cmd
后回车直接定位到本路径,免去了频繁切换路径的麻烦。
在 cmd 中键入 javac HelloWorld.java
开始编译源码。
编译成功后cmd
不会有任何提示。
在文件夹中会出现编译完成后的 class 文件。
运行
接着在 cmd
中键入 java HelloWorld
回车运行 class 文件,将会得到我们的第一个 java 程序,只有一句话。
提示
新手常见错误:
- 没有区分大小写,Java 严格区分大小写。
- 单词拼错。
- 源码里面有错误的中文符号,java 程序中的中文符号只允许出现在
String
类型中。 - 源代码文件名与公共类名字不同。
- 拓展名不对。
运行已编译的程序时,Java 虚拟机将从指定类中的 main 方法开始执行,因此为了代码能够执行,在类的源文件中必须包含一个 main 方法。当然,也可以将用户自定义的方法添加到类中,并且在 main 方法中调用它们。
相关信息
根据 Java 语言规范,main 方法必须声明为 public(Java 语言规范是描述 Java 语言的官方文档。可以从网站:http://docs.oracle.com/javase/specs 上阅读或下载)。
不过,当 main 方法不是 public 时,有些版本的 Java 解释器也可以执行 Java 应用程序。有个程序员报告了这个 bug。如果感兴趣的话,可以在网站:http://bugs.java.com/bugdatabase/index.jsp 上输入 bug 号码 4252539 查看。
这个 bug 被标明“关闭,不予修复。”Sun 公司的工程师解释说:Java 虚拟机规范(在 http://docs.oracle.com/javase/specs/jvms/se8/html )并没有要求 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 类,则会得到如下错误提示:
上面的错误提示仅仅表明:这个类不能被 java 命令解释执行,并不表示这个类是错误的。
Java 解释器规定:如需某个类能被解释器直接解释执行,则这个类里必须包含 main 方法,而且 main 方法必须使用 public static void
来修饰,且 main 方法的形参必须是字符串数组类型(String[]args
是字符串数组的形式)。
main 方法的写法几乎是固定的。main 方法是 Java 程序的入口。