从 HelloWorld 看编译原理

初学笔记(六)

开发阶段

 在记事本上把下列代码照抄下来。

从 HelloWorld 看编译原理_第1张图片" " 英文半角符号

 

  程序写完后,一定要ctrl + s进行保存
  注意:java源码一经修改,必须重新编译。
  重新编译生成新的class字节码文件。

 

  编译阶段

    在编译过程中,需要使用的命令是 javac.exe

    javac 命令的语法格式是:“javac 源文件路径”。

从 HelloWorld 看编译原理_第2张图片  

    编译之后,生成了一个新 的文件“HelloWorld.class”,我们称为字节码文件。(此处若是有对路径是什么不明白的,请回看JDK的安装步骤和环境变量的配置详解(Win10版,小白必看)

    补充:关于注释

运行阶段


    运行的前提是:class文件(字节码)生成了。没有字节码文件程序是无法运行的。
    重点:假设该文件的名字叫做:HelloWorld.class
    那么HelloWorld就是一个类名。
    之后,使用JDK的bin目录下的:java.exe命令来运行。

从 HelloWorld 看编译原理_第3张图片

    javac的运行原理是什么?

    在命令窗口中输入“java HelloWorld”回车之后,先启动的是类加载器,类加载器从硬盘上查找 HelloWorld.class 字节码文件。在这个过程中,默认情况下类加载器只从当前路径下查找,查找到之后则将 HelloWorld.class 文件加载到JVM 并执行。

    java.exe”命令的使用格式:java 类名

    java HelloWorld.class 不对。正确:java HelloWorld

    千万千万要注意,java这个命令,后面跟的是“类名”,而绝对不能跟“文件路径”

    java文件运行原理?

    大家思考下,在java程序运行的过程中,计算机内部发生了什么?

    第一步:回启动JVM(java虚拟器)
    第二步:JVM启动之后,JVM会去启动“类加载器classloader”

    类加载器的作用:加载类。本质上类加载器负责去硬盘上找“类”对应的“字节码”文件
    假设是“java HelloWorld”,那么类加载器会去硬盘上搜索HelloWorld.class文件

    第三步:类加载器如果在硬盘上找不到对用的字节码文件会报错:

    错误:找不到或无法加载主类

    类加载器如果在硬盘上找到了对应的字节码文件,类加载器会将该字节码
    文件装载到JVM当中,JVM启动“解释器”将字节码解释为“1010100011...”这种二进制码,
    操作程序执行二进制码与硬件的交互。

   

你可能感兴趣的:(初学笔记)