学习视频:https://www.bilibili.com/video/av11361088/?p=12
JAVA程序的运行包括两个重要的阶段:
1. 编译阶段
-
主要的任务是检查JAVA源程序是否符合JAVA语法,符合JAVA语法则能够生成正常的字节码文件。
-
不符合JAVA语法规则则无法生成字节码文件。
-
字节码文件中,不是纯粹的二进制,这种文件无法在操作系统中直接执行。
-
编译阶段的过程:
1.1 在硬盘的某个位置新建一个.java扩展名的文件,该文件被称为Java源文件,源文件编写的是JAVA源代码/源程序。而这个源程序必须符合Java语法规则。
1.2 使用JDK自带的javac.exe.命令进行Java程序的编译。
javac怎么用?在哪里用?
- 在DOS命令窗口中使用 - javac的使用规则: javac java源文件的路径 javac是一个java编译器工作/命令。
1.3 一个java源文件可以编译生成多个.class文件。
1.4 字节码文件/.class文件是最终要执行的文件,所以class文件生成后,java源文件删除并不会影响java程序的执行。
1.5 编译结束后,可以将class文件拷贝到其它操作系统中运行。{跨平台}
-
运行阶段(可以在其它操作系统当中,跨平台)
2.1 JDK安装后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe,主要负责运行阶段。
2.2 java.exe在哪里用?怎么用?
- 在DOS窗口中使用。 - - java.exe怎么用呢? - java 类名 例如: 硬盘上有A.class,那么:java A 硬盘上有B.class,那么:java B 硬盘上有C.class,那么:java C
2.3 运行阶段的过程是:
- 打开DOS命令窗口 - 输入:java A - java.exe.命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader, - ClassLoader会去硬盘上搜索A.class文件,找到该文件,将该字节码文件装在到JVM当中。 - JVM将A.class字节码文件解释成二进制1010100这样数据。 - 操作系统执行二进制文件和底层硬件平台进行交互。
-
关于JDK, JRE, JVM的关系
如上:JDK是开发环境,JRE是运行环境,JRE包括了JVM(JVM没有单独的安装程序)。