-
Java程序非常重要的两个阶段: 编译阶段和运行阶段
-
Java程序员直接编写的代码(普通文本)是无法执行别JVM识别的。 Java程序员编写的Java代码这种普通文本(xxx.java)必须经过一个编译(javac),将这个“普通文本代码”变成“字节码”,JVM能够识别“字节码”。java代码这种普通文本变成字节码的过程,被称为:编译。
-
编译阶段和运行阶段可以在不同的操作系统上完成吗? 因为java是跨平台额(在windows上编译之后生成了“字节码”,把“字节码”放到linux上运行完全可以)
-
Java源代码一旦编译之后,源代码可以删除吗?只留下字节码可以执行吗? 可以执行,因为源码不参与程序的执行过程。参与执行过程的是字节码。但没必要删除源码,当执行结果不是你需要的结果时,你还需要对源码进行修改
-
1个Java源文件时可以编译生成多个class文件的,最终运行的是class文件。
-
字节码文件时二进制文件吗? 字节码文件不是二进制文件,如果是二进制文件的话,就不需要JVM了。因为操作系统可以直接执行二进制。
Java程序从开发到最终运行经历了什么? 在硬盘上新增一个.java的文本文件,在文件中编写java源代码—javac.exe编译–>生成一个或多个class结尾的字节码文件----java.exe---->启动JVM,JVM启动类加载器,类加载器去硬盘上找对应类名的字节码文件(.class文件),找到该自文件后,通过类加载器,加载到JVM虚拟机,JVM启动“解释器”将字节码文件解释成二进制,操作系统执行二进制。 -
默认情况下类加载器(classloader)会从当前路径加载,也可以给类加载器指定路径,但要设置classpath
-
classpath是一个环境变量,是给类加载器指路的,classpath不属于windows操作系统,,classpath隶属于java,是java特有的。一但配置了classpath,类加载器就只能在配置的路径下寻找字节码文件。
-
path是一个环境变量,是给windows操作系统指路的,path属于windows操作系统,不属于java
转载于动力节点老杜Java笔记