1. 编写代码:首先编写Java源代码文件,通常以`.java`为扩展名。
2. 编译代码:使用Java编译器(javac)将源代码编译为字节码文件(.class文件),其中包含了类的相关信息和方法的字节码指令。
3. 类加载:当Java程序被执行时,Java虚拟机(JVM)会将编译后的字节码文件加载到内存中。类加载的过程包括加载、连接和初始化三个阶段:
a. 加载(Loading):查找并加载类的字节码文件,通常是从类路径中加载。加载后,会生成一个对应的Class对象,用于在JVM中表示这个类。
b. 连接(Linking):连接阶段包括验证、准备和解析三个步骤:
- 验证(Verification):确保加载的类符合Java虚拟机规范,不会危害虚拟机的安全。
- 准备(Preparation):为类的静态变量分配内存并设置初始值。
- 解析(Resolution):将类、接口、字段和方法的符号引用解析为直接引用。
c. 初始化(Initialization):在初始化阶段,对类进行初始化,包括执行静态变量的赋值和静态代码块的执行。初始化是类加载过程中的最后一个阶段,只有在初始化完成后,类的实例才能被创建。
4. 执行程序:一旦类加载完成并初始化,JVM会执行程序的入口点,通常是main方法。程序开始执行,按照代码中的逻辑进行运行。
在整个过程中,类加载和初始化阶段是Java程序运行的重要环节。在类加载和初始化过程中,JVM会对类进行加载、连接和初始化,确保类的正确性和可用性,然后执行程序的逻辑。