类型生命周期

当被以二进制形式来表现Java类型的Java Class文件被导入到虚拟机中时,会发生什么呢?下面,将描述

Java类型(类或借口)的生命周期过程:装载 -> 连接 -> 初始化 -> 对象实例化 -> 垃圾收集 -> 终结 -> 卸载

装载:就是把以二进制形式表现的Java类型读入到Java虚拟机中。

连接:就是把已经读入的类型数据合并到虚拟机的运行时状态中。此过程分为三个步骤:验证、准备、解

析。“验证”确保格式正确且适于Java虚拟机使用;“准备”则负责分配它所需要的内存,设置默认初始值;“解析”则负责把常量池中的符号引用转换为直接引用,此过程可以推迟实现,当运行中的程序真正使用到某个符号引用时才去解析它。

初始化:给类变量赋予适当的初始值。

类型生命周期

类初始化步骤:

1. 如果一个类存在直接父类,并且父类还没被初始化,就先初始化直接父类;

2. 如果存在一个类初始化方法,就执行此方法。

而接口初始化就不需要初始化父接口,因此只存在上面的步骤2。

Java虚拟机必须确保初始化过程被正确的同步。因此如果有多个线程同时初始化一个类,那么也只允许

一个线程执行,其他线程必须等待。

你可能感兴趣的:(生命周期)