对象的生命周期
对象的生命周期
在Java中,对象的生命周期通常包括以下几个阶段,这些阶段与JVM的内存管理和垃圾收集机制密切相关。
创建阶段
(1)为对象分配存储空间:当使用new
关键字或其他方式(如反射、克隆、反序列化等)创建一个对象时,JVM首先会在堆内存中为其分配相应的存储空间。
(2)开始构造对象:在分配了内存空间后,JVM会调用对象的构造函数来初始化对象的实例变量。
(3)静态成员初始化:从超类到子类,对静态成员变量进行初始化。这通常是在类加载时完成的,而不是在对象创建时。
(4)成员变量初始化:首先递归调用超类的构造方法,对超类的成员变量进行初始化;然后按照声明的顺序对子类的成员变量进行初始化。
(5)构造方法调用:最后调用子类的构造方法。一旦对象被成功创建并被分派给某个变量,该对象就进入了应用阶段。
应用阶段
(1)强引用:系统至少维护着对象的一个强引用(Strong Reference&