Java体系的技术被划分为三大块:
- JavaSE: 标准版
- JavaEE: 企业版
- JavaME: 微型版
安装JDK后:
- JDK:Java开发环境
- JRE:Java运行环境
- JVM:Java虚拟机
Java程序的两个阶段:
- 编译阶段
- 运行阶段
注: Java代码这种普通文本被称为:Java源代码。源代码不能被执行,需要先进行编译,生成源代码对应的“字节码” 。字节码才能被JVM所识别。
Java代码这种普通文本变成字节码的过程,被称为:编译。
思考
Java的编译阶段和运行阶段可以再不同的操作系统上完成吗?
可以。依托于Java语言的跨平台性,Java程序的编译阶段和运行阶段可以再不同的操作系统上完成。(一次编译到处运行)
Java源代码编译之后,可以删除吗?只留下字节码可以执行吗?
可以。因为源代码不参与程序的执行过程,参与执行过程过程的是字节码。
但最好不要删除源代码。如果Java字节码的执行结果并不是自己想要的话,我们需要对源码进行修改,然后重新编译生成新的字节码,再重新执行,得到新的执行结果。
关于源代码与字节码文件的拓展名:
放源代码的文件拓展名必须是:xxx.java
需要注意的是:编译生成的字节码的文件拓展名是:xxx.class
因此,.java文件就是源文件,在这个文件中编写源代码。
.class文件就是字节码文件,这个文件是编译源代码而得到的。
需要注意的是:一个Java源文件是可以编译生成多个class文件的,最终运行的是class文件。
那么,字节码文件是二进制文件吗?
不是。如果是二进制的话,就不需要Java虚拟机了,因为操作系统可以直接执行二进制。
Java程序从开发到最终运行的过程
编译期:
- 第一步:在硬盘的随意某个位置,新建一个xxx.java的文件;
- 第二步:实用记事本或者其他文本编辑器,例如:Editplus打开xxx.java文件;
- 第三步: 在xxx.java文件中编写“符合java语法规则”的源代码;
- 第四步:保存。每次编写或修改,运行前一定要保存;
- 第五步:使用编译器(javac【JDK安装后自带】)对xxx.java文件进行编译;
- 第六步:如果xxx.java文件中编写的源代码是符合语法规则的,编译会通过,反之,编译器会报错。只有编译通过了才会生成class文件,报错后class文件是不会生成的(编译实际上是检查语法的);
运行期:
- 第七步:如果在Linux上运行,需要将Windows文件上生成的class文件拷贝过去,不需要源代码,真正运行的是字节码;
- 第八步:使用JDK自带的一个命令/工具:java 执行字节码;
- 第九步:往下的步骤就全部交给JVM了,就不需要程序员干涉了,JVM会将字节码文件装载进去,然后对字节码进行解释(解释为二进制码);
- 第十步:JVM会将生成的二进制码交给操作系统,系统会执行二进制码和硬件进行交互。
注意:在以上过程中,需要使用两个非常重要的命令!
- javac 命令,负责编译;
- java 命令,负责运行。
xxx.java源文件经过编译之后生成了A.java、B.java、C.java等文件(一个源代码文件可生成多个字节码文件),我们称A是一个类,B是一个类,同样的,C也是一个类。其中,A、B、C是类的名字。
至于类到底是什么,我后续会进行讲解,这里先挖个坑。