java的加载与执行
* java程序的运行包含两个非常重要的阶段
-编译阶段
-运行阶段
*编译阶段
-编译阶段主要的任务是检查java源程序是否符合java 的语法
符合java 语法则能够生成正常的字节码文件 (xxx.java)
不符合java语法规则则无法生成字节码文件
-字节码文件中不是纯粹的二进制, 这种文件无法在操作系统当中直接执行。
-编译阶段的过程:
*程序员需要注意的某个位置新建一个.java 扩展名的文件
该文件称为java 源文件,源文件当中编写的是java 源代码/源程序。
而这个源程序是不能随意编写,必须符合java语法规则
*java 程序员需要使用jdk当中自带的javac.exe 命令进行java 程序的编译
javac 怎么用呢 在哪里用呢?
-javac 的使用规则:
javac java源文件路径
-在dos 命令窗口中使用
javac 是一个java 编译器工具/命令窗口中使用
* 一个java 源文件可以编译生成多个.class 文件。
* 字节码文件/class 文件是最终要执行的文件,所以说class文件生成之后,java源文件 删除并不会影响java 程序的执行。
但是一般java源程序不要删除,因为clss 文件最终执行效果可能不是我们想要的,那么这个时候需要回头重新修改java 源程序,然后
将java 源程序重新编译生成新的class 文件,然后再运行这个class 程序,生成新的效果。
*运行阶段【可以在其他操作系统当中,跨平台】
-jdk 安装之后,除了自带一个javac.exe 之外,还有另一个工具/命令 叫做 java.exe
java.exe 主要负责运行阶段
-java.exe在哪里使用? 怎么用?
硬盘上有一个 A.class 那么就这样用: java A
* java运行的过程是:
*打开dos 命令窗口中使用
*输入: java A
*java.exe 命令启动java 虚拟机(JVM) JVM 启动类加载器Classloader
*Classloader会去主硬盘上搜索A.class 文件,找到该文件则将该字节码文件装载到JVM当中
*JVM A.class 字节码解释成二进制 10101010101 这样的数据。
*然后操作系统执行二进制和底层硬件平台的交互。