顺序 |
环节 |
作用 |
1 |
加载 |
将.java文件编译成.class文件,并从磁盘读取到内存中,只有使用到类时才会加载 |
2 |
验证 |
校验字节码class文件的正确性 |
3 |
准备 |
给类的静态变量分配内存并初始化 |
4 |
解析 |
将符号引用转为直接引用 |
5 |
初始化 |
给静态变量赋值,执行静态代码块 |
6 |
使用 |
执行代码 |
7 |
卸载 |
垃圾回收,当类不再被使用时,JVM有权利在适当的时候将其从内存中清除,释放内存 |
java中一个类使用的生命周期如上图所示,需要注意的几个细节:
1、在准备阶段分配内存之后变量赋的是默认值,只有在初始化阶段才会把代码中给的值赋给变量
2、java中类的加载采用的是懒加载方式,只有要用到一个类的时候才会加载.