第10章 对象生命周期

Java语言是一门面向对象的编程语言。除了基本类型之外,在运行的Java程序中出现的都是对象。从J2SE 5.0开始,通过基本类型的自动装箱/拆箱机制,基本类型也可以通过自动的方式与程序中的其他对象进行交互。Java中的所有类都继承自java.lang.Object类,所有的对象都是Object类的实例。给定一个Java类,如果满足其构造方法的访问控制要求,那么使用new操作符可以创建出该类的对象。对象创建完成后,可以与其他对象进行交互来完成程序要求的功能。当不再使用对象时,可以由Java平台的垃圾回收器来回收对象所占用的内存空间。一般对象都会经历从创建到使用再到销毁的过程。

一个对象的完整生命周期涉及Java平台的很多相关技术。在创建一个Java类的对象之前,需要先由虚拟机加载该Java类(类加载的过程在第9章进行了介绍)。在Java类被加载之后,还需要对该Java类进行链接和初始化。初始化完成之后,才能创建出该Java类的新的对象实例。对象也有自己的初始化过程,主要通过调用对应Java类的特定构造方法来完成。当不再有引用指向一个对象时,这个对象成为垃圾回收器的候选。对象所占用的内存空间会在合适的时机被垃圾回收器回收。对象终止机制提供了一种方式在对象被回收之前进行清理工作。当需要复制一个对象时,可以使用Object类的clone方法。如果需要将对象的状态持久化,可以使用对象序列化机制来得到一个方便存储的字节流。本章的内容围绕这些对象生命周期中可能涉及的相关技术展开。这些技术虽然并不复杂,但是存在很多容易误解和出错的地方。