在开发第一个Java程序之前,我们必须对计算机的一些基础知识进行了解。
常用DOS命令
- Java语言的初学者,学习一些DOS命令,会非常有帮助。DOS是一个早期的操作系统,现在已经被Windows系统取代,对于我们开发人员,目前需要在DOS中完成一些事情,因此就需要掌握一些必要的命令。例如:在输入DOS命令可以创建文件夹,如下图所示
如何进入DOS操作窗口 :
- 按下Windows+R键盘,打开运行窗口,输入cmd回车,进入到DOS的操作窗口。
下面是键盘常用键位图
常用命令,如下图所示:
路径在windows系统上包括:相对路径和绝对路径。
- 相对路径:相对路径一定是相对于当前所在“位置”而言的。相对路径是相对于当前而言,从当前所在的位置作为起点。
- 绝对路径:在windows操作系统中凡是路径起点是盘符的都是绝对路径
Java 的加载与执行
- 在编写第一个 Java 程序之前,我们应当对 Java 的加载与执行提前有一个简单的了解,请看下图:
通过上图,我们可以看到 Java 程序从开发到最终运行是这样进行的:
- 第一步(写代码):在任意位置创建一个.java 结尾的文件,程序员在该文件中编写符合 Java语法的源代码,这个文件被称为Java 源文件。
- 第二步(编译):使用“javac”命令对 java 源文件进行编译,如果 Java 源文件符合 Java语法规则,则编译生成 1 个或者多个以“.class”结尾的文件。“.class”结尾的文件我们称之为字节码文件,注意字节码文件不是普通文本文件,使用记事本等文本编辑器是无法打开的,但该文件内容也不是二进制,如果是二进制形式的话,操作系统是可以直接执行的,这个文件的内容我们称之为字节码。注意:这里有一个“类名”的概念,假设生成的文件是 A.class,则表示类名为 A,B.class 则表示类名为 B。
- 第三步(运行):使用“java”命令运行已编译的 Java 程序,假设编译之后的字节码文件是 A.class,则在 dos 命令窗口中执行 java A命令,这个时候 Java 虚拟机(JVM)就启动了,Java 虚拟机通过“类装载器 ClassLoader”从硬盘中找到 A.class 文件并装载,字节码文件被装 载到 Java 虚拟机之后,Java 虚拟机解释器对字节码进行解释,最终解释为二进制码,然后操 作系统通过执行二进制指令来和硬件平台完成交互。
以上则是 Java 程序加载与执行的过程,接下来总结一下 7 条规则
- Java 程序从开发到运行包括编译和运行两个阶段,这两个阶段可以在不同的操作系统中完成,例如在 windows 环境下进行编译,在 Linux 环境下运行,这是因为有 JVM 机制的存在,做到了一次编译到处运行(跨平台/可移植)。
- 编译阶段需要使用 javac.exe命令,运行阶段需要使用 java.exe命令。
- 一个 Java 源文件可能会编译生成多个 class 文件。
- Java 源文件中的源代码如果不符合 Java 的 语法 机制则编译时编译器会提示错误信息, 并且无法生成 class 文件。反之则生成 class 文件,而 class 文件才是最终要执行的程序,此时将 Java 源文件删除是不会影响 Java 程序运行的。
- 若生成的字节码文件名为 A.class,那么我们称 A为一个类的名字
- 当编译阶段完成之后,我们可以使用 JRE 中的 java.exe 命令运行程序,例如执行命令 “java A”,该命令执行后会启动类加载器,类加载器去硬盘上搜索 A.class 文件,找到该字节 码文件之后,将其加载到 JVM 当中,JVM 中的解释器会将 A.class 字节码文件解释为操作系 统可以执行的二进制码,然后操作系统通过执行二进制码和硬件平台交互。
- 运行 Java 程序的前提是当前操作系统上已经安装了对应版本的 JVM(JVM 不是单独 安装的,安装 JRE 即可,不同的操作系统需要安装不同版本的 JRE,不同版本的 JRE 对应不 同版本的 JVM)。
入门程序
- 开发环境已经搭建完毕,可以开发我们第一个Java程序了。 HelloWorld案例是指在计算机屏幕上输出“HelloWorld”这行文字。Java程序开发三步骤:编写、编译、运行。
具体如下图所示:
1:编写Java源程序
- 在我们指定的目录下新建文本文件,完整的文件名修改为 HelloWorld.java ,其中文件名为 HelloWorld ,后缀名必须为 .java 。 在文件中键入文本并保存,代码如下:
package sgg.demo01;
/*问题1:错误: 编码GBK的不可映射字符, 当前编辑器采用的是utf-8编码 dos窗口采用的GBK编码 原因编码不统一解决方式:统一编码
问题2:错误: 找不到符号,程序包system不存在。可能原因书写错误,java中严格区分大小写。解决方式:大小字母完全保持一致
问题3:错误: 错误: 需要';' 原因:每一行语句的结束 都是 ; 且所有的标点符号都是英文半角解决方式:一行语句的结束 都加上 ;
问题4:错误: 需要')'解决方式:括号成对出现
注意:如果这个类不是public修饰,那么源文件名可以和类名不一致。如果这个类是public修饰,那么要求源文件名必须与类名一致。源文件的名字可以与类名不一致,每一个类在编译后 都会生成一个字节码文件。一个源文件中可以有多个类,编译后每个类都会独立生成一个.class字节码文件。建议不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。*///类名是Demo01HelloWorld后面有一对大括号{},此对大括号 限定了 类的范围
public class Demo01HelloWorld {//主方法 程序的入口 jvm调用 main 小括号后的大括号 限定了方法的范围public static void main(String[] args) {//打印输出一行语句 叫Hello WorldSystem.out.println("Hello World");}
}
第一个 HelloWord 源程序就编写完成了,Java源程序是程序员编写的,程序员自己可以看得懂得程序。本质就是一个文本文件,但是扩展名不是.txt,而是.java。JVM是看不懂的,也就不能运行,因此我们必须将编写好的 Java源文件编译成JVM可以看懂的字节码文件。
2:编译Java源文件
- JVM只能识别字节码文件(.class文件)。 如何把源文件(程序)翻译成JVM能够执行的字节码文件(程序)呢?在DOS命令行中,进入Java源文件的目录,使用 javac 命令进行编译。
- 编译成功后,命令行没有任何提示。打开 源文件目录,发现产生了一个新的文件 HelloWorld.class ,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。
3:运行Java程序
- 不管是源文件(程序)还是字节码文件(程序)都存储在硬盘中 ?不会自动执行,如何把字节码文件交给JVM执行呢 ?我们在DOS命令行中,进入Java源文件的目录,使用 java 命令进行运行。
当我们看见DOS的操作窗口打印出Hello World!,就代表我们第一个Java程序成功了。
HelloWorld案例详解
- 类名后面的大括号限定了类体的范围,方法名后面的大括号限定了方法体的范围
建议:
- 一个源文件中可以有多个类,每一个类中都可以存在main方法
- 源文件中有多少个类,编译后会生成多少个.class字节码文件。
- 建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。
- 对代码进行修改后 一定要重写编译再运行才是修改的结果
- java中使用大括号限定范围,例如:HelloWorld的后面有一对大括号{ },此对大括号 限定了类的范围。main方法的范围也是尤其后面的大括号来限定的。
在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。出现了bug:我们要多看,多思考,多查资料,多尝试,多总结。
HelloWorld案例常见问题如下所示:
HelloWorld案例常见错误总结:
- 源文件扩展名被隐藏,文件名称的后缀必须是java结尾
- 文件名称必须与代码的类名称一致。
- 大小写错误,单词拼写错误
- 存在中文符号,源文件中必须使用英文模式下的符号。
- 括号不配对。
- 编译或者执行命令使用不当。